【愚公系列】华为云系列之.NET Core连接PB级数仓GaussDB(DWS)【玩转PB级数仓GaussDB(DWS)】

愚公搬代码 发表于 2023/01/20 00:02:42 2023/01/20
【摘要】 GaussDB(DWS)是一款具备分析及混合负载能力的分布式数据库,支持x86和Kunpeng硬件架构,支持行存储与列存储,提供GB~PB级数据分析能力、多模分析和实时处理能力,用于数据仓库、数据集市、实时分析、实时决策和混合负载等场景,广泛应用于汽车、制造、零售、物流、互联网、金融、政府、电信等行业分析决策系统。

@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软件包,解压后免安装即可使用。

下载地址:https://console.huaweicloud.com/dws/?region=cn-north-4&locale=zh-cn#/dws/management/connectManagement
在这里插入图片描述

因为是.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期有奖征文火热进行中!

此外,在云声平台提出您的宝贵建议,标题以【云驻计划-定向征文】开头,还有机会赢取额外奖励。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。