【愚公系列】华为云系列之.NET Core连接PB级数仓GaussDB(DWS)【玩转PB级数仓GaussDB(DWS)】
@TOC
前言
GaussDB(DWS)是一款具备分析及混合负载能力的分布式数据库,支持x86和Kunpeng硬件架构,支持行存储与列存储,提供GB~PB级数据分析能力、多模分析和实时处理能力,用于数据仓库、数据集市、实时分析、实时决策和混合负载等场景,广泛应用于汽车、制造、零售、物流、互联网、金融、政府、电信等行业分析决策系统。
纵观.NET Core整个圈子对国产华为GaussDB数据库的支持几乎为 0,本文就来讲解如何使用.NET Core进行GaussDB(DWS)的操作。
相关使用文档地址:https://support.huaweicloud.com/mgtg-dws/dws_01_0018.html
一、GaussDB(DWS)的部署
1.购买GaussDB(DWS)
1、华为云官网:http://bbs.huaweicloud.com/
2、搜索DWS
3、点击立即购买
4、选择购买数据仓库集群
5、进行支付
5、数仓初始化
刚买的数据仓库初始化大概需要半小时
6、进绑定IP地址
点击绑定IP
无公网ip可自行购买
完成后如下,如果不使用记得进行删除哦
至此我们就可以通过外网访问数据库了
二、本地客户端Data Studio(windows)连接集群
1.驱动下载
Data Studio是一款运行在Windows操作系统上的SQL客户端工具,有着丰富的GUI界面,能够管理数据库和数据库对象,编辑、运行、调试SQL脚本,查看执行计划等。在GaussDB(DWS) 管理控制台下载Data Studio软件包,解压后免安装即可使用。
因为是.Net 在window上开发所以下载JDBC驱动,进行安装就好了,完成后安装文件夹如下
2.在Windows环境使用ODBC连接
参考网站:https://support.huaweicloud.com/mgtg-dws/dws_01_0086.html
按官方文档配置好后测试连接
三、.NET Core程序连接集群
1.创建控制台应用程序
2.添加相关ODBC包
FreeSql.Provider.Odbc
FreeSql.Repository
3.创建实体模型
using System;
using FreeSql.DataAnnotations;
namespace ConsoleTest
{
public class User
{
[Column(IsIdentity = true)]
public long Id { get; set; }
public string? UserName { get; set; }
public string? PassWord { get; set; }
public DateTime CreateTime { get; set; }
}
}
4.初始化ORM
using FreeSql.Internal;
using System.Diagnostics;
//初始化ORM
IFreeSql fsql = new FreeSql.FreeSqlBuilder()
.UseConnectionString(FreeSql.DataType.OdbcPostgreSQL,
"自己华为云的连接字符串")
.UseMonitorCommand(cmd => Trace.WriteLine($"线程:{cmd.CommandText}\r\n"))
.UseAutoSyncStructure(true) //自动创建、迁移实体表结构
.UseNameConvert(NameConvertType.ToUpper)
.Build();
5.CRUD的使用
5.1 插入数据
using ConsoleTest;
using FreeSql.Internal;
using System.Diagnostics;
//初始化ORM
IFreeSql fsql = new FreeSql.FreeSqlBuilder()
.UseConnectionString(FreeSql.DataType.OdbcPostgreSQL,
"Driver={PostgreSQL Unicode};server=xxxx;Port=xxxx;uid=xxxx;pwd=xxxxx;database=xxxxx")
.UseMonitorCommand(cmd => Trace.WriteLine($"线程:{cmd.CommandText}\r\n"))
.UseAutoSyncStructure(true) //自动创建、迁移实体表结构
.UseNameConvert(NameConvertType.ToUpper)
.Build();
//-------------------------CRUD:C 插入数据-----------------------------------------
var repo = fsql.GetRepository<User>();
var user = new User { UserName = "愚公搬代码", PassWord = "123" };
repo.Insert(user);
5.2 查询数据
//-------------------------CRUD:R 查询数据-----------------------------------------
var repo = fsql.GetRepository<User>();
var one = fsql.Select<User>(1).First(); //查询一条数据
var list = fsql.Select<User>().Where(a => a.UserName.StartsWith("愚公搬代码")).ToList();
5.3 更新数据
//-------------------------CRUD:R 查询数据-----------------------------------------
var repo = fsql.GetRepository<User>();
var one = fsql.Select<User>(1).First(); //查询一条数据
var list = fsql.Select<User>().Where(a => a.UserName.StartsWith("愚公搬代码")).ToList().FirstOrDefault();
////-------------------------CRUD:U 更新数据-----------------------------------------
list.PassWord = "123123";
repo.Update(list);
5.4 删除数据
//-------------------------CRUD:D 删除数据-----------------------------------------
fsql.Delete<User>(1).ExecuteAffrows();
fsql.Delete<User>().Where(a => a.UserName.StartsWith("愚公搬代码")).ExecuteAffrows();
总结
国产数据库未来是发展趋势,拥有自主权不受他人限制,华为GaussDB(DWS)虽然还在起步阶段,相信未来会越来越完善,在.NET领域中其实关于GaussDB(DWS)是很少的,本文就做个简单使用案例,希望对.NET相关开发者使用GaussDB(DWS)数仓有所帮助。
【一起来玩转PB级数仓GaussDB(DWS),分享你的技术经验与体验心得,赢开发者大礼包!】第19期有奖征文火热进行中!
此外,在云声平台提出您的宝贵建议,标题以【云驻计划-定向征文】开头,还有机会赢取额外奖励。
- 点赞
- 收藏
- 关注作者
评论(0)