值得推荐的.NET/.NET Core ORM框架汇总
前言:最近有很多同学问我.NET方面有哪些好用的ORM框架,我觉得这方面的介绍网上应该会介绍的比较全面文章,于是我想搜一篇全面的介绍文章发给他们结果我发现网上说来说去基本上就是那几个,于是就有了这篇文章。该篇文章已收录到【DotNetGuide(C#/.NET/.NET Core学习、工作、面试指南)👉】GitHub知识库中欢迎大家前往订阅(有帮助的话别忘了给我一颗小星星⭐),假如大家有更好的ORM框架推荐可以前往GitHub仓库中留言💖!什么是ORM?ORM 是 Object Relational Mapping 的缩写,译为“对象关系映射”,是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。它解决了对象和关系型数据库之间的数据交互问题,ORM的作用是在关系型数据库和业务实体对象之间作一个映射,这样我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法。如何选择合适自己的ORM框架?对于我们而言选择ORM框架的目的其实都是为了让我们的程序更好的操作数据库,提高开发编程效率和程序的维护拓展性。因此我们在为自己负责的项目选择合适的ORM框架的时候需要从项目的业务场景出发,选择最适合自己团队的ORM框架(注意没有完美的框架,适合团队的才是最好的)。以下是一些比较好用且优秀的.NET-ORM框架汇总,排名不分先后可供大家参考学习(假如您有更好的.NET相关ORM推荐请在文末留言,谢谢)。EF/EF CoreEntity Framework (EF) Core 是轻量化、可扩展、开源和跨平台版的常用 Entity Framework 数据访问技术,EF Core 是适用于 .NET 的现代对象数据库映射器。它支持 LINQ 查询、更改跟踪、更新和架构迁移。EF Core 通过提供程序插件 API 与 SQL Server、Azure SQL 数据库、SQLite、Azure Cosmos DB、MySQL、PostgreSQL 和其他数据库一起使用。(微软官方出品)。EF Core 可用作对象关系映射程序 (O/RM),这可以实现以下两点:使 .NET 开发人员能够使用 .NET 对象处理数据库。无需再像通常那样编写大部分数据访问代码。官方文档教程:https://docs.microsoft.com/zh-cn/ef/GitHub地址:https://github.com/dotnet/efcore以下是EF/EF Core相关拓展程序包:EFCore.BulkExtensions - EF的批量操作库。EntityFramework-Plus - EF的增强工具集,包括过滤器,审核,缓存,查询,批删除,批更新等。EntityFramework.Exceptions - 当您的SQL查询违反SqlServer,MySql或PostgreSQL中的数据库约束时,请对EntityFrameworkCore使用类型化的异常处理。EntityFramework.Triggers - EF触发器。EntityFramework.Rx - EF的Reactive 扩展程序。Npgsql.EntityFrameworkCore.PostgreSQL - PostgreSQL的EF驱动程序。EntityFramework.TypedOriginalValues - 通过某些特殊方法来获得数据库对象在本次修改前的原始值。常见的使用场景是对数据库操作的数据做审计。EntityFramework.VersionedProperties - 将对象里每次变更历史自动保存到一个特定的属性里。审计或者做历史版本时比较适用。LINQKit - LINQKit是LINQ对SQL和Entity Framework的免费扩展集。Pomelo.EntityFrameworkCore.MySql - mysql的EF驱动程序。spectre.query - EF的简单查询库。StoredProcedureEFCore-用于执行存储过程的 Entity Framework Core 扩展。ShardingCore - EF Core分表分库读写分离的扩展。DapperDapper是一个简单的.NET对象映射器,在速度方面具有"King of Micro ORM"的头衔,几乎与使用原始的ADO.NET数据读取器一样快。ORM是一个对象关系映射器,它负责数据库和编程语言之间的映射。Dapper通过扩展IDbConnection提供一些有用的扩展方法去查询您的数据库。主要特点:高性能、易排查、易运维、灵活可控。GitHub地址:https://github.com/DapperLib/Dapper以下是Dapper相关拓展程序包:Dapper-Extensions - Dapper Extensions 是一个小型ORM库,通过为您的 POCO 添加基本的 CRUD 操作(获取、插入、更新、删除)来补充Dapper。对于更高级的查询场景,Dapper Extensions 提供了一个谓词系统。这个库的目标是通过不需要任何属性或基类继承来保持你的 POCO 纯净。Dapper-FluentMap - Dapper的扩展。Dommel - Dapper的CRUD操作。MicroOrm.Dapper.Repositories - Dapper的CRUD操作。FreeSqlFreeSql 是一款功能强大的对象关系映射(O/RM)组件,支持 .NET Core 2.1+、.NET Framework 4.0+ 以及 Xamarin。主要特点:支持 CodeFirst 模式,即便使用 Access 数据库也支持数据迁移;支持 DbFirst 模式,支持从数据库导入实体类,或使用实体类生成工具生成实体类;支持 深入的类型映射,比如 PgSql 的数组类型等;支持 丰富的表达式函数,以及灵活的自定义解析;支持 导航属性一对多、多对多贪婪加载,以及延时加载;支持 读写分离、分表分库、过滤器、乐观锁、悲观锁;支持 MySql/SqlServer/PostgreSQL/Oracle/Sqlite/Firebird/达梦/人大金仓/神舟通用/南大通用/翰高/ClickHouse/Access 等数据库;官方文档地址:http://www.freesql.net/GitHub地址:https://github.com/dotnetcore/FreeSqlSqlSugarSqlSugar是一款老牌 .NET 开源ORM框架,支持.NET CORE 和 MySql、SqlServer、Sqlite、Oracle 、 postgresql 、达梦、人大金仓 数据库,具有EF NH的功能,比EF更人性化的语法,支持真实的批量操作,另外还有媲美Dapper的性能。主要特点:简单易用、功能齐全、高性能、轻量级、服务齐全、支持全自动分表组件,SAAS分库,大数据处理的ORM。官网地址:http://www.donet5.comGitHub地址:https://github.com/donet5/SqlSugarChloeChloe 是一个轻量级的对象/关系映射(ORM)库。查询接口类似于 LINQ。您可以使用 Chloe.ORM 通过 lambda 查询 LINQ 之类的数据并执行任何操作(加入查询 | 组查询 | 聚合查询 | 插入 | 批量更新 | 批量删除)。文档地址:https ://github.com/shuxinqin/Chloe/wikiGitHub地址:https://github.com/shuxinqin/Chloenhibernate-core NHibernate 是一个成熟的开源对象关系映射器,适用于 .NET 框架。它被积极开发,功能齐全,并在数千个成功的项目中使用。NHibernate社区网站 - https://nhibernate.info GitHub地址:https://github.com/nhibernate/nhibernate-coreSmartSqlSmartSql = C# 中的 MyBatis + .NET Core+ 缓存(内存 | Redis)+ R/W 拆分 + PropertyChangedTrack +动态存储库 + InvokeSync + 诊断。SmartSql 借鉴了 MyBatis 的思想,使用 XML 来管理 SQL ,并且提供了若干个筛选器标签来消除代码层面的各种 if/else 的判断分支。SmartSql将管理你的 SQL ,并且通过筛选标签来维护本来你在代码层面的各种条件判断,使你的代码更加优美。主要特点:简洁、高效、高性能、扩展性、监控、渐进式开发!文档地址: https://smartsql.net/guide/GitHub地址:https://github.com/dotnetcore/SmartSqlPetaPocoPetaPoco 是一个用于 .NET(4、4.5+、net standard 2.0+)和 Mono 的微型、快速、易于使用的 micro-ORM。由于 PetaPoco 所代表的简单性和易用性,它受到许多人的喜爱。PetaPoco 是首选的微 ORM,也是任何体面的开发人员工具包中必不可少的实用程序。主要特点:与Dapper一样,它很快,因为它使用动态方法生成 (MSIL) 将列值分配给属性。像Massive一样,它现在也支持动态 Expandos。与ActiveRecord一样,它支持对象和数据库表之间的密切关系。与SubSonic一样,它支持使用 T4 模板生成 poco 类(仅限 V5)。与Massive一样,它以单个文件的形式提供,您可以轻松地将其添加到任何项目或编译(仅限 V5)。文档地址:https://discoverdot.net/projects/peta-pocoGitHub地址:https://github.com/CollaboratingPlatypus/PetaPoco linq2dbLINQ to DB 是最快的LINQ数据库访问库,在POCO对象和数据库之间提供了一个简单、轻量、快速且类型安全的层。在架构上,它比 Dapper、Massive 或 PetaPoco 等微 ORM 高出一步,因为您使用 LINQ 表达式,而不是魔术字符串,同时在代码和数据库之间维护一个薄抽象层。您的查询由 C# 编译器检查并允许轻松重构。但是,它不像 LINQ to SQL 或实体框架那么重。没有更改跟踪,因此您必须自己进行管理,但从积极的方面来说,您可以获得更多控制权并更快地访问您的数据。文档地址:https://linq2db.github.io/ GitHub地址:https://github.com/linq2db/linq2dbRepoDb RepoDB 是一个开源的 .NET ORM 库,它弥补了微 ORM 和全 ORM 的差距。它可以帮助您在开发过程中简化何时使用 BASIC 和 ADVANCE 操作的切换。主要特点:易于使用- 这些操作都作为您的 IDbConnection 对象的扩展方法实现。只要您的连接处于打开状态,就可以对您的数据库调用任何操作。高性能- 它缓存已经生成的编译表达式以供将来重用和执行。它了解您的架构以创建最佳的编译表达式 AOT。内存高效- 它提取并缓存您的对象属性、执行上下文、对象映射和 SQL 语句。它在整个转换和执行过程中重用它们。动态和混合- 它提供了成熟 ORM 的一些高级功能。它极大地帮助开发人员在开发过程中进行上下文切换时简化体验。开源软件——它是一个开源软件,并且永远是免费的。它旨在进一步改进 .NET 数据访问体验和解决方案,以及社区的集体思想。高质量- 它是一个高质量的微型 ORM,由 10K+ 真实单元和集成测试支持。它经过高度测试,并被生产环境中运行的各种关键系统使用。GitHub地址:https://github.com/mikependon/RepoDBServiceStack.OrmLite OrmLite是一个快速、简单、类型化的.NET ORM,OrmLite 的目标是提供一个方便、DRY、无配置、与 RDBMS 无关的类型包装器,该包装器与 SQL 保持高度亲和性,公开直观的 API,生成可预测的 SQL 并干净地映射到断开连接和数据传输对象 (DTO) 友好、普通的旧C# 对象 (POCO)。这种方法更容易推理您的数据访问,从而清楚地知道什么 SQL 在什么时间执行,同时减轻意外行为、隐式 N+1 查询和重对象关系映射器 (ORM) 中普遍存在的泄漏数据访问。文档地址:https://docs.servicestack.net/ormlite/GitHub地址:https://github.com/ServiceStack/ServiceStack.OrmLiteSQLite-net 简单、强大、跨平台的 SQLite 客户端和 .NET 的 ORM。主要特点:非常容易与现有项目集成并在所有 .NET 平台上运行。SQLite 上的瘦包装器,快速高效。(这个库不应该是您查询的性能瓶颈。)用于安全执行 CRUD 操作和查询(使用参数)并以强类型方式检索这些查询结果的非常简单的方法。与您的数据模型一起工作,而不会强迫您更改您的类。(包含一个小的反射驱动 ORM 层。)GitHub地址:https://github.com/praeclarum/sqlite-netInsight.DatabaseInsight.Database是一个用于 .NET 的快速、轻量级的 micro-orm。GitHub地址:https://github.com/jonwagner/Insight.Databasecyqdata cyq.data是一个高性能且功能最强大的orm(支持.NET Core),支持Txt、Xml、Access、Sqlite、Mssql、Mysql、Oracle、Sybase、Postgres、DB2、Redis、MemCache。GitHub地址:https://github.com/cyq1162/cyqdataTinyORMTinyORM是一个简单、快速且安全的微型.NET ORM。Wiki地址:https://github.com/sdrapkin/SecurityDriven.TinyORM/wikiGitHub地址:https://github.com/sdrapkin/SecurityDriven.TinyORMquerybuilderSQL 查询构建器,用 c# 编写,帮助您轻松构建复杂的查询,支持 SqlServer、MySql、PostgreSql、Oracle、Sqlite 和 Firebird。官网地址:https://sqlkata.com/GitHub地址:https://github.com/sqlkata/querybuilderC#/.NET/.NET Core推荐学习书籍C#/.NET/.NET Core学习视频汇总C#/.NET/.NET Core优秀项目框架推荐C#/.NET/.NET Core面试宝典(基础版)C#/.NET/.NET Core学习、工作、面试指南2022年了有哪些值得推荐的.NET ORM框架?[提高工作开发效率,远离996]程序员常用的工具软件推荐了解作者&获取更多学习资料&加入DotNetGuide技术交流群
人大金仓数据库Kingbase8在CentOS7上的安装与使用
背景最近接触了个项目,数据库用的是国产数据库:人大金仓V8。简单总结下 Kingbase8 在 CentOS7 上的安装与使用。下载手机号、验证码,下载镜像以及开发版授权证书:www.kingbase.com.cn/rjcxxz/inde…安装文档: https://help.kingbase.com.cn/stage-api/profile/document/kes/v8r6/html/install-updata/linux/install-linux/install-linux-3.html#id13修改主机名[root@hadoop2 ~]# hostnamectl set-hostname hadoop4
[root@hadoop2 ~]# vi /etc/hosts
# 重启生效(其实已经生效了,断开连接重连即可)
[root@hadoop2 ~]# reboot
连接断开
连接主机...
连接主机成功安装大体步骤:创建用户 kingbase ,挂载镜像,切换用户 kingbase ,安装,切换用户root,初始化。[root@hadoop4 ~]# cd /opt/
[root@hadoop4 opt]# mkdir KingbaseES_V8R6_Lin64_install
# 新增用户,赋予权限
[root@hadoop4 opt]# useradd kingbase
[root@hadoop4 opt]# chown -R kingbase:kingbase /opt/KingbaseES_V8R6_Lin64_install/
# 挂载下载的镜像
[root@hadoop4 opt]# mkdir /kingbase
[root@hadoop4 opt]# mount /opt/KingbaseES_V8R6_Lin64_install/KingbaseES_V008R006C005B0054_Lin64_install.iso /kingbase
mount: /dev/loop0 写保护,将以只读方式挂载
[root@hadoop4 opt]# chown -R kingbase:kingbase /kingbase
chown: 正在更改"/kingbase/setup/install.bin" 的所有者: 只读文件系统
chown: 正在更改"/kingbase/setup/installer.properties" 的所有者: 只读文件系统
chown: 正在更改"/kingbase/setup/MD5" 的所有者: 只读文件系统
chown: 正在更改"/kingbase/setup" 的所有者: 只读文件系统
chown: 正在更改"/kingbase/setup.sh" 的所有者: 只读文件系统
chown: 正在更改"/kingbase" 的所有者: 只读文件系统
# 切换用户,准备安装
[root@hadoop4 opt]# su kingbase
# 开始安装
[kingbase@hadoop4 opt]$ sh /kingbase/setup.sh
Now launch installer...
tee: .installer.log: 只读文件系统
Preparing to install
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system\'s environment...
Launching installer...
Graphical installers are not supported by the VM. The console mode will be used instead...
===============================================================================
KingbaseES V8
网址:www.kingbase.com.cn
全国服务热线:400-601-1188
技术支持邮箱:support@kingbase.com.cn
是否接受此许可协议条款? (Y/N): Y
===============================================================================
选择安装集
-----
请选择将由本安装程序安装的“安装集”。
->1- 完全安装
2- 客户端安装
3- 定制安装
输入“安装集”的号码,或按 <ENTER> 键以接受缺省值
:
===============================================================================
选择授权文件
------
文件路径: /opt/KingbaseES_V8R6_Lin64_install/license_12350_0.dat
License序列号 --- 启用 --- 74FE7946-4378-11EC-AE8E-000C29CBE49F
生产日期 --- 启用 --- 2021-11-12
产品名称 --- 启用 --- KingbaseES V8
细分版本模板名 --- 启用 --- SALES-开发版 V8R6
产品版本号 --- 启用 --- V008R006C
浮动基准日期 ------ 启用
有效期间 --- 启用 --- 0
用户名称 --- 启用 --- 官方网站试用授权
项目名称 --- 启用 --- 官方网站试用授权
CPU检查 --- 启用 --- 0
容器名称 --- 禁用 --- 0
MAC地址 --- 启用 --- 00:00:00:00:00:00
最大连接数 --- 启用 --- 10
分区 --- 启用 --- 0
物理同步 --- 启用 --- 0
读写分离模块 --- 启用 --- 0
恢复到指定时间点 --- 启用 --- 0
集群对网络故障的容错 --- 启用 --- 0
快速加载 --- 启用 --- 0
日志压缩 --- 启用 --- 0
全文检索 --- 启用 --- 0
性能优化包(性能诊断) --- 启用 --- 0
性能优化包(性能调优) --- 启用 --- 0
保密通讯协议 --- 启用 --- 0
审计 --- 启用 --- 0
三权分立 --- 启用 --- 0
透明加密 --- 启用 --- 0
强制访问控制 --- 启用 --- 0
列加密 --- 启用 --- 0
密码复杂度 --- 启用 --- 0
用户锁定 --- 启用 --- 0
集群管理软件 --- 启用 --- 0
集群配置工具 --- 启用 --- 0
集群高级管理包 --- 启用 --- 0
并行查询 --- 启用 --- 0
并行备份还原 --- 启用 --- 0
异构数据源 --- 启用 --- 0
日志解析 --- 启用 --- 0
===============================================================================
选择安装目录
------
请选择一个安装目录。
您想在哪一位置安装?
缺省安装文件夹: /opt/Kingbase/ES/V8
输入一个绝对路径,或按 <ENTER> 键以接受缺省路径
: /opt/KingbaseES_V8R6_Lin64_install/V8
安装文件夹为: /opt/KingbaseES_V8R6_Lin64_install/V8
是否正确? (Y/N): Y
===============================================================================
预安装摘要
-----
在继续执行前请检查以下信息:
产品名:
KingbaseES V8
安装文件夹:
/opt/KingbaseES_V8R6_Lin64_install/V8
产品功能部件:
数据库服务器,
数据迁移工具,
接口,
数据库部署工具,
高可用组件,
数据库对象管理工具
磁盘空间信息(用于安装目标):
所需空间: 2,995.44 MB
可用空间: 43,977.65 MB
请按 <ENTER> 键继续:
===============================================================================
准备就绪,可以安装
---------
本安装程序已准备完毕,可在下列位置安装 KingbaseES V8:
/opt/KingbaseES_V8R6_Lin64_install/V8
按 <ENTER> 键进行安装:
===============================================================================
正在安装...
===============================================================================
选择存储数据的文件夹
----------
请选择一个文件夹,该文件夹必须为空。
Data folder (默认: /opt/KingbaseES_V8R6_Lin64_install/V8/data):
===============================================================================
数据库端口
-----
请输入数据库服务监听端口,默认54321。
端口 (默认: 54321):
===============================================================================
数据库管理员
------
请输入数据库管理员用户名。
用户名: (默认: system):
===============================================================================
输入密码
----
本次安装需输入密码才能继续。
请输入密码: 请输入密码:*******
===============================================================================
再次输入密码
------
本次安装需再次输入密码才能继续。
请再次输入密码: 请再次输入密码:*******
===============================================================================
数据库服务字符集
--------
请输入服务端字符集编码。
->1- UTF8
2- GBK
3- GB18030
输入您选择的号码,或按 <ENTER> 键以接受缺省值:
===============================================================================
数据库兼容模式
-------
请输入数据库兼容模式。
1- PG
->2- ORACLE
输入您选择的号码,或按 <ENTER> 键以接受缺省值:
===============================================================================
字符大小写敏感特性
---------
请输入字符大小写敏感特性。
->1- YES
2- NO
输入您选择的号码,或按 <ENTER> 键以接受缺省值:
===============================================================================
存储块大小
-----
请输入存储块大小。
->1- 8k
2- 16k
3- 32k
输入您选择的号码,或按 <ENTER> 键以接受缺省值:
===============================================================================
提示
数据库即将被安装,需要花费一些时间,请耐心等待。
请按 <ENTER> 键继续:
===============================================================================
请稍候
===============================================================================
安装完成
----
恭喜!KingbaseES V8 已成功地安装到:
/opt/KingbaseES_V8R6_Lin64_install/V8
如果您需要将 KingbaseES V8 注册为系统服务,请运行
/opt/KingbaseES_V8R6_Lin64_install/V8/install/script/root.sh
按 <ENTER> 键以退出安装程序:
cat: .installer.log: 没有那个文件或目录
Complete.以上操作后,还需要初始化才算安装完成。[kingbase@hadoop4 opt]$ /opt/KingbaseES_V8R6_Lin64_install/V8/install/script/root.sh
Must be root to run this script, and root.sh should be executed in the '/opt/KingbaseES_V8R6_Lin64_install/V8/install/script/root.sh' way, not 'sh /opt/KingbaseES_V8R6_Lin64_install/V8/install/script/root.sh'.
[kingbase@hadoop4 opt]$ exit
exit
# 上面报错了,需要切换至root用户才可以
[root@hadoop4 opt]# /opt/KingbaseES_V8R6_Lin64_install/V8/install/script/root.sh
Starting KingbaseES V8:
waiting for server to start.... done
server started
KingbaseES V8 started successfully
[root@hadoop4 opt]#查看版本通过本地客户端连接或者查看版本是报错了:could not change directory to "/root": 权限不够解决:切换用户: chmod 755 /root[kingbase@hadoop4 root]$ ksql -U system test
could not change directory to "/root": 权限不够
ksql (V8.0)
Type "help" for help.
test=# \q
[kingbase@hadoop4 root]$ kingbase -V
LOG: 42501: could not change directory to "/root": Permission denied
LOCATION: resolve_symlinks, exec.c:310
KINGBASE (KingbaseES) V008R006C005B0054
# 赋权
[root@hadoop4 ~]# chmod 755 /root
[kingbase@hadoop4 root]$ kingbase -V
KINGBASE (KingbaseES) V008R006C005B0054数据管理测试 SQL 用法以及常用操作。测试之前先建立连接: ksql -U system test基本使用-- 一定要注意:关键词区分大小写
test=# CREATE TABLE test_table(a int);
CREATE TABLE
test=# \dt
关联列表
架构模式 | 名称 | 类型 | 拥有者
----------+------------+--------+--------
public | test_table | 数据表 | system
(1 行记录)
test=# \d test_table
数据表 "public.test_table"
栏位 | 类型 | 校对规则 | 可空的 | 预设
------+---------+----------+--------+------
a | integer | | |
test=# INSERT INTO test_table VALUES(88);
INSERT 0 1
test=# SELECT * FROM test_table;
a
----
88
(1 行记录)创建数据库test=# CREATE DATABASE my_db_name;
CREATE DATABASE
test=# \l
数据库列表
名称 | 拥有者 | 字元编码 | 校对规则 | Ctype | 存取权限
-----------+--------+----------+-------------+-------------+-------------------
my_db_name | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 |
security | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 |
template0 | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/system +
| | | | | system=CTc/system
template1 | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/system +
| | | | | system=CTc/system
test | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 |
(5 行记录)数据还原还原过程有报错,但是数据库表成功导入。。sys_restore -Usystem -Fc /opt/KingbaseES_V8R6_Lin64_install/to_restore/my_db_name.dmp -d my_db_name启动与停止sys_ctl start -D /opt/KingbaseES_V8R6_Lin64_install/V8/data
sys_ctl stop -D /opt/KingbaseES_V8R6_Lin64_install/V8/data日志目录/opt/KingbaseES_V8R6_Lin64_install/V8/data/sys_log命令行常用命令# 切换用户
[root@hadoop4 ~]# su kingbase
# 命令行客户端登录
[kingbase@hadoop4 root]$ ksql -U system test
ksql (V8.0)
输入 "help" 来获取帮助信息.
# 切换数据库
test-# \c abc_db
您现在已经连接到数据库 "abc_db",用户 "system".
# 列出所有库
abc_db-# \l
数据库列表
名称 | 拥有者 | 字元编码 | 校对规则 | Ctype | 存取权限
-----------+--------+----------+-------------+-------------+-------------------
abc_db | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 |
xyz_db | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 |
security | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 |
template0 | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/system +
| | | | | system=CTc/system
template1 | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/system +
| | | | | system=CTc/system
test | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 |
(6 行记录)
# 切换数据库
abc_db-# \c test
您现在已经连接到数据库 "test",用户 "system".
# 列出当前库下的所有表
test-# \dt
关联列表
架构模式 | 名称 | 类型 | 拥有者
----------+------------+--------+--------
public | test_table | 数据表 | system
(1 行记录)
# 查看表结构
test-# \d test_table
数据表 "public.test_table"
栏位 | 类型 | 校对规则 | 可空的 | 预设
------+---------+----------+--------+------
a | integer | | |
# 查看所有用户
test-# \du
角色列表
角色名称 | 属性 | 成员属于
-----------+--------------------------------------------+----------
sao | 没有继承 | {}
sso | 没有继承 | {}
system | 超级用户, 建立角色, 建立 DB, 复制, 绕过RLS | {}
qwerty | | {}
# 显示字符编码设置
test-# \encoding
UTF8
# 退出
test-# \q
[kingbase@hadoop4 root]$GUI可视化远程连接我这里使用了两种方式进行远程的可视化连接, DBeaver 与 IDEA 。远程连接前我先关闭了防火墙: systemctl stop firewalld.service不过,刚开始时通过 DBeaver/IDEA 连接报错:The authentication type 10 is not supported. Check that you have configured the sys_hba.conf file to include the client's IP address or subnet, and that it is using an authentication scheme supported by the driver.原因: Kingbase 驱动的版本与服务版本不一致!!数据库服务用的是 8.6.0 ,但是用的驱动是 8.2.0 。DBeaverIDEA
国王小组:开发交易所搭建|推荐10个主流比较流行的ORM框架
下面推荐10个主流比较流行的ORM框架,都是开源的项目:一、SqlSugar(国内)支持SqlServer、MySql、PgSql和Oracle插入blukcopy分表大数据自处理支持多租户、多库事务支持 支持 CodeFirst 数据迁移。支持 Join 查询、Union all 、Subquery支持配置查询支持 DbFirst 从数据库导入实体类,或使用生成工具。支持一对多和多对多的导航属性支持MySql、SqlServer、Sqlite、Oracle、postgresql、QuestDb、ClickHouse、达梦、人大金仓、神通数据库、瀚高、MsAccess、华为GaussDB、GBase 8s、Odbc、自定义支持 AOP 、 Diff Log 、 Query Filter开源地址:https://github.com/donet5/SqlSugar二、Dos.ORM(国内)Dos.ORM于2009年发布、2015年正式开源,该组件已在数百个成熟项目中应用。初期开发过程中吸取了NBear与MySoft的一些精华并加入新思想,之后参考EF Lambda语法进行大量扩展。经过数十个版本的更新迭代发布全新v2.0版本,支持动态列/表、分库/分表等。开源地址:https://github.com/itdos/Dos.ORM三、Chloe(国内)Chloe 是一个轻量级的对象/关系映射(ORM)库。查询接口类似于 LINQ。您可以使用 Chloe.ORM 通过 lambda 查询 LINQ 之类的数据并执行任何操作(查询 | 组查询 | 聚合查询 | 插入 | 批量更新 | 批量删除)。开源地址:https://github.com/shuxinqin/Chloe四、StackExchange/Dapper(国外)Dapper.EntityFrameworkEntityFramework 的扩展处理程序Dapper.EntityFramework.StrongNameEntityFramework 的扩展处理程序Dapper.Rainbow在 Dapper 上实现的 Micro-ORM,提供 CRUD 助手Dapper.SqlBuilder用于动态且可组合地构建 SQL 查询的组件Dapper.StrongName支持 MySQL、Sqlite、SqlICE 和 Firebird 的高性能微 ORM开源地址:https://github.com/DapperLib/Dapper五、Entity Framework (EF)(国外)它是微软封装好一种http://ADO.NET数据实体模型,将数据库结构以ORM模式映射到应用程序中。EF提供变更跟踪、唯一性约束、惰性加载、查询事物等。开发人员使用Linq语言,对数据库操作如同操作object对象一样省事。EF有三种使用场景:1、从数据库生成Class。2、由实体类生成数据库表结构。3、通过数据库可视化设计器设计数据库,同时生成实体类。开源地址:https://github.com/dotnet/ef6六、NHibernate(国外)NHibernate 是一个成熟的开源对象关系映射器,适用于 .NET 框架。它被积极开发,功能齐全,并在数千个成功的项目中使用。开源地址:https://github.com/nhibernate/nhibernate-core七、ServiceStack/ServiceStack.OrmLite(国外)简单的 .NET 的快速、、类型化的 ORM开源地址:https://github.com/ServiceStack/ServiceStack.OrmLite八、linq2db(国外)LINQ to DB 是最快的 LINQ 数据库访问库,在 POCO 对象和数据库之间提供了一个简单、轻量、快速且类型安全的层。在架构上,它比 Dapper、Massive 或 PetaPoco 等微 ORM 高出一步,因为您使用 LINQ 表达式而不是魔术字符串,同时在代码和数据库之间维护一个薄抽象层。您的查询由 C# 编译器检查并允许轻松重构。但是,它不像 LINQ to SQL 或实体框架那么重。没有更改跟踪,因此您必须自己进行管理,但从积极的方面来说,您可以获得更多控制权并更快地访问您的数据。换句话说LINQ to DB 是类型安全的 SQL。开源地址:https://github.com/linq2db/linq2db九、Massive(国外)一个小型、快乐、动态的 .NET MicroORM开源地址:https://github.com/FransBouma/Massive十、PetaPoco(国外)很小,绝对没有依赖!异步或同步,选择权在您。(又名异步)(V6)与严格未修饰的 POCO 或归属的几乎 POCO 一起使用。易于配置,包括开箱即用的流畅配置。插入/删除/更新/保存和 IsNew 的辅助方法分页请求会自动计算出总记录数并获取特定页面。简单的交易支持。更好的参数替换支持,包括从对象属性中获取命名参数。通过使用 DynamicMethod 生成消除 Linq 和快速属性分配来获得出色的性能。查询语言是好的 ole SQL。包括一个低摩擦的 SQL 构建器类,使编写内联 SQL变得更加容易。包括 T4 模板以自动为您生成 POCO 类。(V5)用于记录异常、安装值转换器和将列映射到没有属性的属性的挂钩。适用于 SQL Server、SQL Server CE、MS Access、SQLite、MySQL、MariaDB、Firebird 和 PostgreSQL。(Oracle 支持但没有集成测试)。在 Net Standard 2.0、.NET 4.0/4.5+ 或 Mono 2.8 及更高版本下工作。有Xunit单元测试。已支持 DBs 集成测试。开源地址:https://github.com/CollaboratingPlatypus/PetaPoco
C#/.NET/.NET Core优秀项目框架推荐
前言: 为.NET开源者提供的一个推荐自己优秀框架的地址,大家可以把自己的一些优秀的框架,或者项目链接地址存到在这里,提供给广大.NET开发者们学习(注意:排名不分先后,都是十分优秀的开源框架和项目💖)。Github项目仓库收集地址:https://github.com/YSGStudyHards/DotNetGuide/issues/5填写格式如下:项目or框架名称+访问链接地址+项目描述:📦NPOI-ExportWordAndExcel-ImportExcelData一个简单,易懂的通用ASP.NET Core NPOI导出复杂Word、复杂美观Excel和Excel数据导入详细示例开源项目(开箱即用,无需其他繁琐配置)。🏡C#/.NET Core/.NET项目宝库(收集了大量优秀的C#、.NET、.NET Core项目)该库主要是为我们.NET开发者提供一个寻找优秀C#/.NET Core/.NET项目的入口,通过了解和对比更多的项目来选择最适合我们自己学习、工作开发的一套项目。优秀的项目是不应该被埋没的,欢迎大家一起加入这个组织共同完善、发展.NET社区!【注意:这些都是非常优秀的作者所写的项目,排名不分先后,欢迎前往原址Star】Blog.Core项目地址:https://github.com/anjoy8/Blog.CoreBlog.Core一个开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x + RBAC】权限框架。官方文档地址:apk.neters.club/.docAspNetCore项目地址:https://github.com/dotnet/aspnetcoreASP.NETCore是一个跨平台的.NET框架,用于在Windows、Mac或Linux上构建基于云的现代web应用程序。WeiXinMPSDK项目地址:https://github.com/JeffreySu/WeiXinMPSDK微信公众平台SDK Senparc.Weixin for C#,支持.NET Framework及.NET Core。已支持微信公众号、小程序、小游戏、企业号、企业微信、开放平台、微信支付、JSSDK、微信周边等全平台。 WeChat SDK for C#.ABP Framework项目地址:https://github.com/abpframework/abpABP是一个开源应用程序框架,专注于基于ASP.NET Core的Web应用程序开发,但也支持开发其他类型的应用程序.官方文档地址:documentationUtil项目地址:https://github.com/dotnetcore/UtilUtil是一个.net core平台下的应用框架,旨在提升小型团队的开发输出能力,由常用公共操作类(工具类)、分层架构基类、Ui组件,第三方组件封装,第三方业务接口封装,配套代码生成模板,权限等组成。siteserver/cms项目地址:https://github.com/siteserver/cms是基于 .NET Core,能够以最低的成本、最少的人力投入在最短的时间内架设一个功能齐全、性能优异、规模庞大并易于维护的网站平台。OSharp项目地址:https://github.com/dotnetcore/OSharpOSharp是一个基于.NetCore的快速开发框架,框架对 AspNetCore 的配置、依赖注入、日志、缓存、实体框架、Mvc(WebApi)、身份认证、功能权限、数据权限等模块进行更高一级的自动化封装,并规范了一套业务实现的代码结构与操作流程,使 .Net Core 框架更易于应用到实际项目开发中。Vue.NetCore项目地址:https://github.com/cq-panda/Vue.NetCore.NetCore+Vue2/Vue3+Element plus+uniapp前后端分离,全自动生成代码;支持移动端(uniapp)ios/android/h5/微信小程序。OpenAuth.Net项目地址:https://gitee.com/dotnetchina/OpenAuth.Net.Net快速应用开发框架、最好用的权限工作流系统。基于经典领域驱动设计的权限管理及快速开发框架,源于Martin Fowler企业级应用开发思想及最新技术组合(IdentityServer、EF、Quartz、AutoFac、WebAPI、Swagger、Mock、NUnit、VUE、Element-ui等)。已成功在docker/jenkins中实施。核心模块包括:组织机构、角色用户、权限授权、表单设计、工作流等。它的架构精良易于扩展,是中小企业的首选。ant-design-blazor项目地址:https://github.com/ant-design-blazor/ant-design-blazor一组基于Ant Design和Blazor WebAssembly的企业级UI组件。NetModular项目地址:https://github.com/iamoldli/NetModularNetModular 是基于.Net Core 和 Vue.js 的业务模块化以及前后端分离的快速开发框架。payment项目地址:https://github.com/essensoft/paylink一套基于 .NET Core 开发的支付SDK集,它极大简化了API调用及通知的处理流程。Furion项目地址:https://gitee.com/dotnetchina/Furion让 .NET 开发更简单,更通用,更流行。YuebonNetCore项目地址:https://gitee.com/yuebon/YuebonNetCore?_from=gitee_searchYuebonCore基于.Net5.0的权限管理及快速开发框架,前后端分离,核心模块包括:组织机构、角色用户、权限授权、多系统、多应用管理、定时任务、业务单据编码规则、代码生成器等,整合应用最新技术包括Asp.NetCore MVC、EF、Dapper、AutoFac、WebAPI、Swagger、Vue等。它的架构易于扩展,是中小企业的首选。 YuebonCore其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展,让Web开发更快速、简单,解决70%重复工作。轻松开发,专注您的业务,从YuebonCore FW开始!fulusso项目地址:https://github.com/fuluteam/fulusso基于react+asp.net core开发的单点登录系统Awesome DotNet Packages项目地址:https://github.com/mjebrahimi/Awesome-Nuget-Packages很棒的.NET程序包的集合。SuperSocket项目地址:https://github.com/kerryjiang/SuperSocketSuperSocket 是一个轻量级、跨平台和可扩展的套接字服务器应用程序框架。DotNetty项目地址:https://github.com/Azure/DotNettyDotNetty 项目——netty 的一个端口,事件驱动的异步网络应用框架。nopCommerce项目地址:https://github.com/nopSolutions/nopCommerce一个功能完善,且流行的.NET领域电商开源项目nopCommerce是最好的开源电子商务平台。nopCommerce 是免费的,它是最流行的 ASP.NET Core 购物车。CAP项目地址:https://github.com/dotnetcore/CAPCAP 是一个基于 .NET Standard 的 C# 库,它是一种处理分布式事务的解决方案,同样具有 EventBus 的功能,它具有轻量级、易使用、高性能等特点。金庸群侠传3D重制版项目地址:https://github.com/jynew/jynew金庸群侠传3D重制版是一个非盈利游戏项目,重制经典游戏《金庸群侠传》(在线玩DOS原版)并支持后续一系列MOD和二次开发。项目目标:使用Unity引擎重制并致敬经典游戏《金庸群侠传》DOS版;后续支持重制《金群》的一系列MOD或二次开发;提供开放的能力给社区,有兴趣贡献力量的朋友可以让这个作品更加完善;提供一个完备的单机游戏结构供有兴趣学习开发游戏的朋友进行参考;IdentityServer4.Admin项目地址:https://github.com/skoruba/IdentityServer4.AdminIdentityServer4 和 Asp.Net Core Identity的管理Surging项目地址:https://github.com/fanliang11/surgingsurging 是一个分布式微服务框架,提供高性能RPC远程服务调用,采用Zookeeper、Consul作为surging服务的注册中心,集成了哈希,随机,轮询,压力最小优先作为负载均衡的算法,RPC可以选择采用netty或thrift框架,采用异步非阻塞传输。Ocelot项目地址:https://github.com/ThreeMammals/OcelotOcelot 是一个 .NET API 网关。该项目面向使用 .NET 运行微服务/面向服务架构的人,他们需要一个统一的入口点进入他们的系统。但是,它适用于任何使用 HTTP 的内容并在 ASP.NET Core 支持的任何平台上运行。SqlSugar项目地址:https://github.com/donet5/SqlSugarSqlSugar是一款 老牌 .NET 开源ORM框架,由果糖大数据科技团队维护和更新 ,1. .NET中唯一支持全自动分表组件,SAAS分库,大数据处理的ORM2. .NET 百万级写入、更新 性能最强框架3. 使用最简单的ORM 【文档,视频教程】4. 媲美原生的极限的性能5.Github star数仅次于EF 和 Dapper,每月nuget下载量超过1万更多优点: 简单易用、功能齐全、高性能、轻量级、服务齐全、官网教程文档、有专业技术支持一天18小时服务支持数据库:MySql、SqlServer、Sqlite、Oracle 、 postgresql、达梦、人大金仓、神通数据库FreeSql项目地址:https://github.com/dotnetcore/FreeSqlFreeSql 是一款功能强大的对象关系映射(O/RM)组件,支持 .NET Core 2.1+、.NET Framework 4.0+ 以及 Xamarin。🛠 支持 CodeFirst 模式,即便使用 Access 数据库也支持数据迁移;💻 支持 DbFirst 模式,支持从数据库导入实体类,或使用实体类生成工具生成实体类;⛳ 支持 深入的类型映射,比如 PgSql 的数组类型等;✒ 支持 丰富的表达式函数,以及灵活的自定义解析;🏁 支持 导航属性一对多、多对多贪婪加载,以及延时加载;📃 支持 读写分离、分表分库、过滤器、乐观锁、悲观锁;🌳 支持 MySql/SqlServer/PostgreSQL/Oracle/Sqlite/Firebird/达梦/人大金仓/神舟通用/南大通用/翰高/Access 等数据库;csredis项目地址:https://github.com/2881099/csredis适用于 Redis 和 Redis Sentinel (2.8) 和集群的 .NET Core 或 .NET Framework 4.0+ 客户端。包括同步和异步客户端。FreeRedis项目地址:https://github.com/2881099/FreeRedisFreeRedis 是 .NET40+ Redis 客户端。支持集群、哨兵、主从、发布-订阅、lua、管道、事务、流、客户端缓存和池化。Orleans项目地址:https://github.com/dotnet/orleansOrleans建立在.NET开发人员生产力的基础上,并将其带入了分布式应用程序的世界,例如云服务。 Orleans可从单个本地服务器扩展到云中全局分布的高可用性应用程序。Orleans采用了对象,接口,async/await和try/catch等熟悉的概念,并将其扩展到多服务器环境。 这样,它可以帮助具有单服务器应用程序经验的开发人员过渡到构建弹性,可扩展的云服务和其他分布式应用程序。 因此,Orleans通常被称为“分布式.NET”。它是由Microsoft Research 创建的,并介绍了Virtual Actor Model作为一种新方法来构建面向云时代的新一代分布式系统。 Orleans的核心贡献是它的编程模型,它在不限制功能,以及对开发人员施加繁重约束的情况下,降低了高并发分布式系统固有的复杂性。FreeIM项目地址:https://github.com/2881099/FreeIM.NETCore websocket 实现简易、高性能、集群即时通讯组件,支持点对点通讯、群聊通讯、上线下线事件消息等众多实用性功能。FreeIM 使用 websocket 协议实现简易、高性能(单机支持5万+连接)、集群即时通讯组件,支持点对点通讯、群聊通讯、上线下线事件消息等众多实用性功能。 ImCore 已正式改名为 FreeIM。【网络版斗地主示例】FightLandlord项目地址:https://github.com/2881099/FightLandlord.NETCore斗地主服务器 + HTML5前端。FastGithub项目地址:https://github.com/dotnetcore/FastGithubgithub加速神器,解决github打不开、用户头像无法加载、releases无法上传下载、git-clone、git-pull、git-push失败等问题。AgileConfig项目地址:https://github.com/dotnetcore/AgileConfig基于.NET Core开发的轻量级分布式配置中心。YiShaAdmin项目地址:https://github.com/liukuo362573/YiShaAdminYiShaAdmin 基于.NET Core Web开发,借鉴了很多开源项目的优点,让你开发Web管理系统和移动端Api更简单,所以我也把她开源了。 她可以用于所有的Web应用程序,例如网站管理后台、CMS、CRM、ERP、OA这类的系统和移动端Api。MediatR项目地址:https://github.com/jbogard/MediatRMediatR是一款进程内的消息订阅、发布框架,提供了Send方法用于发布到单个处理程序、Publish方法发布到多个处理程序,使用起来非常方便。Autofac项目地址:https://github.com/autofac/AutofacAutofac 是.NET框架中最常用的依赖注入框架之一。相比.Net Core标准的依赖注入库, 它提供了更多高级特性, 比如动态代理和属性注入等。Mapster项目地址:https://github.com/MapsterMapper/Mapster一款高性能对象映射框架。AutoMapper项目地址:https://github.com/AutoMapper/AutoMapper一款功能强大的对象映射框架(在 .NET 领域的开发者中有非常高的知名度和使用率)。AspNetCoreRateLimit项目地址:https://github.com/stefanprodan/AspNetCoreRateLimitASP.NET Core 限速中间件。Polly项目地址:https://github.com/App-vNext/PollyPolly 是一个 .NET 弹性和瞬态故障处理库,允许开发人员以流畅和线程安全的方式表达重试、断路器、超时、隔板隔离和回退等策略。从 6.0.1 版开始,Polly 面向 .NET Standard 1.1 和 2.0+。bc-csharp项目地址:https://github.com/bcgit/bc-csharp一个提供了很多哈希算法和加密算法的C#第三方库。
C#/.NET/.NET Core优秀项目框架推荐
前言: 为.NET开源者提供的一个推荐自己优秀框架的地址,大家可以把自己的一些优秀的框架,或者项目链接地址存到在这里,提供给广大.NET开发者们学习(注意:排名不分先后,都是十分优秀的开源框架和项目💖)。Github项目仓库收集地址:https://github.com/YSGStudyHards/DotNetGuide/issues/5填写格式如下:项目or框架名称+访问链接地址+项目描述:📦NPOI-ExportWordAndExcel-ImportExcelData一个简单,易懂的通用ASP.NET Core NPOI导出复杂Word、复杂美观Excel和Excel数据导入详细示例开源项目(开箱即用,无需其他繁琐配置)。🏡C#/.NET Core/.NET项目宝库(收集了大量优秀的C#、.NET、.NET Core项目)该库主要是为我们.NET开发者提供一个寻找优秀C#/.NET Core/.NET项目的入口,通过了解和对比更多的项目来选择最适合我们自己学习、工作开发的一套项目。优秀的项目是不应该被埋没的,欢迎大家一起加入这个组织共同完善、发展.NET社区!【注意:这些都是非常优秀的作者所写的项目,排名不分先后,欢迎前往原址Star】Blog.Core项目地址:https://github.com/anjoy8/Blog.CoreBlog.Core一个开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x + RBAC】权限框架。官方文档地址:apk.neters.club/.docAspNetCore项目地址:https://github.com/dotnet/aspnetcoreASP.NETCore是一个跨平台的.NET框架,用于在Windows、Mac或Linux上构建基于云的现代web应用程序。WeiXinMPSDK项目地址:https://github.com/JeffreySu/WeiXinMPSDK微信公众平台SDK Senparc.Weixin for C#,支持.NET Framework及.NET Core。已支持微信公众号、小程序、小游戏、企业号、企业微信、开放平台、微信支付、JSSDK、微信周边等全平台。 WeChat SDK for C#.ABP Framework项目地址:https://github.com/abpframework/abpABP是一个开源应用程序框架,专注于基于ASP.NET Core的Web应用程序开发,但也支持开发其他类型的应用程序.官方文档地址:documentationUtil项目地址:https://github.com/dotnetcore/UtilUtil是一个.net core平台下的应用框架,旨在提升小型团队的开发输出能力,由常用公共操作类(工具类)、分层架构基类、Ui组件,第三方组件封装,第三方业务接口封装,配套代码生成模板,权限等组成。siteserver/cms项目地址:https://github.com/siteserver/cms是基于 .NET Core,能够以最低的成本、最少的人力投入在最短的时间内架设一个功能齐全、性能优异、规模庞大并易于维护的网站平台。OSharp项目地址:https://github.com/dotnetcore/OSharpOSharp是一个基于.NetCore的快速开发框架,框架对 AspNetCore 的配置、依赖注入、日志、缓存、实体框架、Mvc(WebApi)、身份认证、功能权限、数据权限等模块进行更高一级的自动化封装,并规范了一套业务实现的代码结构与操作流程,使 .Net Core 框架更易于应用到实际项目开发中。Vue.NetCore项目地址:https://github.com/cq-panda/Vue.NetCore.NetCore+Vue2/Vue3+Element plus+uniapp前后端分离,全自动生成代码;支持移动端(uniapp)ios/android/h5/微信小程序。OpenAuth.Net项目地址:https://gitee.com/dotnetchina/OpenAuth.Net.Net快速应用开发框架、最好用的权限工作流系统。基于经典领域驱动设计的权限管理及快速开发框架,源于Martin Fowler企业级应用开发思想及最新技术组合(IdentityServer、EF、Quartz、AutoFac、WebAPI、Swagger、Mock、NUnit、VUE、Element-ui等)。已成功在docker/jenkins中实施。核心模块包括:组织机构、角色用户、权限授权、表单设计、工作流等。它的架构精良易于扩展,是中小企业的首选。ant-design-blazor项目地址:https://github.com/ant-design-blazor/ant-design-blazor一组基于Ant Design和Blazor WebAssembly的企业级UI组件。NetModular项目地址:https://github.com/iamoldli/NetModularNetModular 是基于.Net Core 和 Vue.js 的业务模块化以及前后端分离的快速开发框架。payment项目地址:https://github.com/essensoft/paylink一套基于 .NET Core 开发的支付SDK集,它极大简化了API调用及通知的处理流程。Furion项目地址:https://gitee.com/dotnetchina/Furion让 .NET 开发更简单,更通用,更流行。YuebonNetCore项目地址:https://gitee.com/yuebon/YuebonNetCore?_from=gitee_searchYuebonCore基于.Net5.0的权限管理及快速开发框架,前后端分离,核心模块包括:组织机构、角色用户、权限授权、多系统、多应用管理、定时任务、业务单据编码规则、代码生成器等,整合应用最新技术包括Asp.NetCore MVC、EF、Dapper、AutoFac、WebAPI、Swagger、Vue等。它的架构易于扩展,是中小企业的首选。 YuebonCore其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展,让Web开发更快速、简单,解决70%重复工作。轻松开发,专注您的业务,从YuebonCore FW开始!fulusso项目地址:https://github.com/fuluteam/fulusso基于react+asp.net core开发的单点登录系统Awesome DotNet Packages项目地址:https://github.com/mjebrahimi/Awesome-Nuget-Packages很棒的.NET程序包的集合。SuperSocket项目地址:https://github.com/kerryjiang/SuperSocketSuperSocket 是一个轻量级、跨平台和可扩展的套接字服务器应用程序框架。DotNetty项目地址:https://github.com/Azure/DotNettyDotNetty 项目——netty 的一个端口,事件驱动的异步网络应用框架。nopCommerce项目地址:https://github.com/nopSolutions/nopCommerce一个功能完善,且流行的.NET领域电商开源项目nopCommerce是最好的开源电子商务平台。nopCommerce 是免费的,它是最流行的 ASP.NET Core 购物车。CAP项目地址:https://github.com/dotnetcore/CAPCAP 是一个基于 .NET Standard 的 C# 库,它是一种处理分布式事务的解决方案,同样具有 EventBus 的功能,它具有轻量级、易使用、高性能等特点。金庸群侠传3D重制版项目地址:https://github.com/jynew/jynew金庸群侠传3D重制版是一个非盈利游戏项目,重制经典游戏《金庸群侠传》(在线玩DOS原版)并支持后续一系列MOD和二次开发。项目目标:使用Unity引擎重制并致敬经典游戏《金庸群侠传》DOS版;后续支持重制《金群》的一系列MOD或二次开发;提供开放的能力给社区,有兴趣贡献力量的朋友可以让这个作品更加完善;提供一个完备的单机游戏结构供有兴趣学习开发游戏的朋友进行参考;IdentityServer4.Admin项目地址:https://github.com/skoruba/IdentityServer4.AdminIdentityServer4 和 Asp.Net Core Identity的管理Surging项目地址:https://github.com/fanliang11/surgingsurging 是一个分布式微服务框架,提供高性能RPC远程服务调用,采用Zookeeper、Consul作为surging服务的注册中心,集成了哈希,随机,轮询,压力最小优先作为负载均衡的算法,RPC可以选择采用netty或thrift框架,采用异步非阻塞传输。Ocelot项目地址:https://github.com/ThreeMammals/OcelotOcelot 是一个 .NET API 网关。该项目面向使用 .NET 运行微服务/面向服务架构的人,他们需要一个统一的入口点进入他们的系统。但是,它适用于任何使用 HTTP 的内容并在 ASP.NET Core 支持的任何平台上运行。SqlSugar项目地址:https://github.com/donet5/SqlSugarSqlSugar是一款 老牌 .NET 开源ORM框架,由果糖大数据科技团队维护和更新 ,1. .NET中唯一支持全自动分表组件,SAAS分库,大数据处理的ORM2. .NET 百万级写入、更新 性能最强框架3. 使用最简单的ORM 【文档,视频教程】4. 媲美原生的极限的性能5.Github star数仅次于EF 和 Dapper,每月nuget下载量超过1万更多优点: 简单易用、功能齐全、高性能、轻量级、服务齐全、官网教程文档、有专业技术支持一天18小时服务支持数据库:MySql、SqlServer、Sqlite、Oracle 、 postgresql、达梦、人大金仓、神通数据库FreeSql项目地址:https://github.com/dotnetcore/FreeSqlFreeSql 是一款功能强大的对象关系映射(O/RM)组件,支持 .NET Core 2.1+、.NET Framework 4.0+ 以及 Xamarin。🛠 支持 CodeFirst 模式,即便使用 Access 数据库也支持数据迁移;💻 支持 DbFirst 模式,支持从数据库导入实体类,或使用实体类生成工具生成实体类;⛳ 支持 深入的类型映射,比如 PgSql 的数组类型等;✒ 支持 丰富的表达式函数,以及灵活的自定义解析;🏁 支持 导航属性一对多、多对多贪婪加载,以及延时加载;📃 支持 读写分离、分表分库、过滤器、乐观锁、悲观锁;🌳 支持 MySql/SqlServer/PostgreSQL/Oracle/Sqlite/Firebird/达梦/人大金仓/神舟通用/南大通用/翰高/Access 等数据库;csredis项目地址:https://github.com/2881099/csredis适用于 Redis 和 Redis Sentinel (2.8) 和集群的 .NET Core 或 .NET Framework 4.0+ 客户端。包括同步和异步客户端。FreeRedis项目地址:https://github.com/2881099/FreeRedisFreeRedis 是 .NET40+ Redis 客户端。支持集群、哨兵、主从、发布-订阅、lua、管道、事务、流、客户端缓存和池化。Orleans项目地址:https://github.com/dotnet/orleansOrleans建立在.NET开发人员生产力的基础上,并将其带入了分布式应用程序的世界,例如云服务。 Orleans可从单个本地服务器扩展到云中全局分布的高可用性应用程序。Orleans采用了对象,接口,async/await和try/catch等熟悉的概念,并将其扩展到多服务器环境。 这样,它可以帮助具有单服务器应用程序经验的开发人员过渡到构建弹性,可扩展的云服务和其他分布式应用程序。 因此,Orleans通常被称为“分布式.NET”。它是由Microsoft Research 创建的,并介绍了Virtual Actor Model作为一种新方法来构建面向云时代的新一代分布式系统。 Orleans的核心贡献是它的编程模型,它在不限制功能,以及对开发人员施加繁重约束的情况下,降低了高并发分布式系统固有的复杂性。FreeIM项目地址:https://github.com/2881099/FreeIM.NETCore websocket 实现简易、高性能、集群即时通讯组件,支持点对点通讯、群聊通讯、上线下线事件消息等众多实用性功能。FreeIM 使用 websocket 协议实现简易、高性能(单机支持5万+连接)、集群即时通讯组件,支持点对点通讯、群聊通讯、上线下线事件消息等众多实用性功能。 ImCore 已正式改名为 FreeIM。【网络版斗地主示例】FightLandlord项目地址:https://github.com/2881099/FightLandlord.NETCore斗地主服务器 + HTML5前端。FastGithub项目地址:https://github.com/dotnetcore/FastGithubgithub加速神器,解决github打不开、用户头像无法加载、releases无法上传下载、git-clone、git-pull、git-push失败等问题。AgileConfig项目地址:https://github.com/dotnetcore/AgileConfig基于.NET Core开发的轻量级分布式配置中心。YiShaAdmin项目地址:https://github.com/liukuo362573/YiShaAdminYiShaAdmin 基于.NET Core Web开发,借鉴了很多开源项目的优点,让你开发Web管理系统和移动端Api更简单,所以我也把她开源了。 她可以用于所有的Web应用程序,例如网站管理后台、CMS、CRM、ERP、OA这类的系统和移动端Api。MediatR项目地址:https://github.com/jbogard/MediatRMediatR是一款进程内的消息订阅、发布框架,提供了Send方法用于发布到单个处理程序、Publish方法发布到多个处理程序,使用起来非常方便。Autofac项目地址:https://github.com/autofac/AutofacAutofac 是.NET框架中最常用的依赖注入框架之一。相比.Net Core标准的依赖注入库, 它提供了更多高级特性, 比如动态代理和属性注入等。Mapster项目地址:https://github.com/MapsterMapper/Mapster一款高性能对象映射框架。AutoMapper项目地址:https://github.com/AutoMapper/AutoMapper一款功能强大的对象映射框架(在 .NET 领域的开发者中有非常高的知名度和使用率)。AspNetCoreRateLimit项目地址:https://github.com/stefanprodan/AspNetCoreRateLimitASP.NET Core 限速中间件。Polly项目地址:https://github.com/App-vNext/PollyPolly 是一个 .NET 弹性和瞬态故障处理库,允许开发人员以流畅和线程安全的方式表达重试、断路器、超时、隔板隔离和回退等策略。从 6.0.1 版开始,Polly 面向 .NET Standard 1.1 和 2.0+。bc-csharp项目地址:https://github.com/bcgit/bc-csharp一个提供了很多哈希算法和加密算法的C#第三方库。
国产化人大金仓数据库转库工具:oracle12c数据库转kingbase8.6人大金仓数据库实例演示
oracle12c数据库转人大金仓数据库实例演示第一章:数据准备① 人大金仓建库建用户② 人大金仓授权表空间③ 人大金仓创建 schema 表第二章:转库演示① 转库工具准备② 创建源库和目的库数据库连接③ 创建迁移任务④ 启动迁移任务⑤ 迁移完成,查看迁移结果第一章:数据准备① 人大金仓建库建用户切换人大金仓用户,然后创建用户和数据库,名称要和 oracle 的用户名一致。[root@ncc-61-19 ~]# su - kingbase
Last login: Thu Jun 17 13:32:07 CST 2021 on pts/4
[kingbase@ncc-61-19 ~]$ ksql -U system -d test
ksql (V008R006M002B0013)
输入 "help" 来获取帮助信息.
test=# create user auto_2105_oracle_yz_0406 with password 'nccloud001';
CREATE ROLE
test=# create database auto_2105_oracle_yz_0406 owner auto_2105_oracle_yz_0406 tablespace nnc_data01;
CREATE DATABASE② 人大金仓授权表空间根据自己数据库的实际需要来设置即可。test=# grant all on tablespace nnc_data01 to auto_2105_oracle_yz_0406;
GRANT
test=# grant all on tablespace nnc_index01 to auto_2105_oracle_yz_0406;
GRANT③ 人大金仓创建 schema 表退出,用自己的建的用户登录,建个 schema 表,这个也要和 oracle 数据库的用户一致。test=# \q
[kingbase@ncc-61-19 ~]$ ksql -U auto_2105_oracle_yz_0406 -d auto_2105_oracle_yz_0406
ksql (V008R006M002B0013)
输入 "help" 来获取帮助信息.
auto_2105_oracle_yz_0406=> create schema auto_2105_oracle_yz_0406;
CREATE SCHEMA第二章:转库演示① 转库工具准备转库工具一般在根安装路径下 DtsTools 目录下。 windows 版迁移工具获取:小蓝枣的csdn资源仓库 ② 创建源库和目的库数据库连接新建数据库连接。 建一个源库 oracle 的连接。 然后再建个目标库人大金仓数据库的连接。 ③ 创建迁移任务创建迁移任务。 选择刚才创建的连接。 选择要迁移的库。 全选。 这个最大并发数和写缓冲大小的默认值调一下。 自动转换对象名这个属性可以勾上,如果碰到重复的对象名会进行转换,不会影响使用,后面经常有出错,主要也是因为这个原因。 点击完成即可。 ④ 启动迁移任务点击迁移任务。 弹出提示点击确定后就开始迁移了。 ⑤ 迁移完成,查看迁移结果经过 4 个多小时迁移完了。 点击确定后会弹出迁移报告,如果有报错的,相关 sql 日志存放路径会提示出来,可以根据其中的日志来进行问题排查和确认。 喜欢的点个赞❤吧!
人大金仓支持上海徐汇区构建服务型政府
上海市徐汇区政府积极响应国家号召,建设电子政务综合应用平台,充分利用网络平台全面、准确发布政府信息公开事项,实时、规范办理主要行政职权和便民服务事项,并实现电子监察对行政业务流程的全覆盖。作为专业的数据库管理系统产品及解决方案供应商,人大金仓为推进上海市徐汇区电子政务综合应用国产化平台提供基于金仓数据库KingbaseES开发、测试、运维等一系列服务。
长期以来,人大金仓在数据服务上以研究自主可控数据库、大数据相关产品创新应用为主,积极贯彻执行“专注、融合、精细化”的服务理念。积极为用户提供平台验证、综合性能优化、组合方案推广等平台服务。服务内容贯穿客户全项目周期、产品源码级服务、实行服务项目经理制,按需出发,实行定制化产品方案和大数据解决方案,从而打造全生命周期立体化服务体系。
专业服务打造“三个统一”平台
构建统一的内部行政业务流转平台、统一的电子政务信息管理平台和统一的外部电子政务信息公开和服务平台,是上海市徐汇区电子政务综合应用平台的总体规划。着力于规范全区事项信息管理,促进全区各个系统数据对接,实现全区数据互通资源共享;通过技术化手段,整合全区所有岗位人员相关信息,并实现多级化分布,用户组权限配置与个性化权限配置的多重权限管理手段;丰富政务信息及内容的发布,充分利用互联网技术,准确发布政府信息公开事项,实时、规范办理主要行政职权和便民服务事项,并实现电子监察对行政业务流程的全覆盖。为保障政务数据安全,强化安全可靠保障,推动国产基础软件及大数据技术在电子政务信息化建设中的全面应用。
在性能技术指标上,上海市徐汇区电子政务综合应用平台要求做到在网络稳定的环境下操作界面单一操作的系统响应时间小于2秒,一般控制在1秒。十万条数据的简单查询统计不超过10秒,百万条数据的简单查询统计不超过20秒。系统支持不少于500个并发用户同时使用。
为满足用户的各项需求和保证该平台的数据库存安全要求,人大金仓在数据库建立初期对表、字段、索引、磁盘空间、访问权限等充分考虑安全性要求,实现三权分立机制,避免人为错误有引发安全漏洞或隐患。在数据库审计按照等级保护要求,对复杂网络环境下的各种数据库操作行进行细粒度审计的手段,能够对运行在各种操作系统上的各种数据库的操作进行审计。
“3+X”部署方案保证系统正常运行
针对平台的建设要求,人大金仓采取“3+X方案“。其中“3”指政务公开和政务服务专栏、综合应用和资源管理。“X”指区电子政务平台相关应用系统,如区政府门户网站、区电子监察系统、区政府信息公开系统等。
在该项目中,金仓数据库KingbaseES达到了项目设计的功能和性能要求。其中金仓数据库迁移工具KingbaseES JDTS,很好地将前期基于MS SQL Server开发的应用系统移植到金仓数据库KingbaseES上;同时,金仓数据库具备国家安全四级认证,相比国外数据库在我国销售的数据库版本安全级别(最高不超过C2级)有更高优势,在数据库级增强了整个系统的安全性;人大金仓本地原厂的技术支持服务和快速响应机制,保证了系统的成功上线运行。
上海市徐汇区电子政务综合应用平台自2013年2月份正式运营以来,整体运行稳定,表明国产基础软件完全有能力承担电子政务核心应用;同时在性能上与国外同类产品没有本质的区别,而在价格上相对低很多,节约了项目资金投入。该平台的建设和正常运营,将有助于运用自主可控数据库及大数据等信息化手段,有效提升政务服务的效率,扩大政务服务的渠道,健全政务服务的标准化建设,加深政务信息的挖掘利用,加强政务信息安全性,通过政务服务运行管理功能的运用,逐步建立和完善政务服务的长效机制,促进“服务政府”建设。
原文发布时间为:2016年8月12日
本文来自云栖社区合作伙伴至顶网,了解相关信息可以关注至顶网。
新数据库时代,DBA 发展之路该如何选择
近些年,数据库在技术领域已发展成熟,诸多类别趋于细分,焕发新的活力。众多新生数据库诞生并以迅猛之势打开市场,同时很多数据库也以开源开放的形式布局国内外市场。对于全新阶段的数据库时代,一些新型数据库对 DBA 在产品学习和业务场景体验上面临新的挑战,到底未来该如何选型新数据库产品,DBA 的发展该如何选择?《对话 ACE》第二期活动便以“新数据库时代,DBA 发展之路该如何选择”为背景,邀请到 OceanBase 解决方案部总经理师文汇,dbaplus 社群联合发起人、竞技世界资深 DBA、Oracle ACE 杨建荣,共同探索“DBA 未来发展之路”。以此推动国产数据库技术、人才及生态建设的发展。(* 戳下方视频看完整精彩回放~ 直播干货满满没时间看视频没关系!小编对直播的内容也进行了汇总分享欢迎大家阅读、收藏!OceanBase 解决方案部总经理 师文汇Q您认为 DBA 更应该参与哪方面的工作(比如内核开发,调优,交付等)?A师文汇:大概分几个群体。对于刚毕业的学生,鼓励大家多做内核或者技术相关的开发工作,会有好的技术沉淀。数据库其实是处在整个业务的最核心的环节,既能做深层次技术的积累,也可以将技术和业务更好地结合。无论学习内核,还是学习业务,对 DBA 都是有非常大的帮助和成长。对于一些资深的 DBA,建议大家多了解行业或业务知识。比如说金融、运营商领域,如何使用数据库,在业务场景下的核心痛点。对于 DBA 的发展,可以去做对外的商业化解决方案类,也可以架构师方面的工作。数据库开发方向,前期可以了解一些常见的开源数据库,比如 OceanBase,其实是很好地学习数据库的入手项目。可以基于其社区版做一些开放的 project,通过这样一些实践,快速的进入到社区一起交流学习。对于传统数据库的开发者,例如 MySQL 或者 PostgreSQL,如果投入到 OceanBase 分布式的学习,天然是有很多优势,比如在事务上的理解。OceanBase 是一个分布式关系数据库,通过学习,在分布式、一致性协议等领域,是能够帮助大家快速成长去完成自我提升的。大家如果愿意动手花时间去学习和实践,比如简单的一些代码修改和编译,通过这些实践,会有新的收获。Q大家都在谈内卷和躺平,关于这两方面,能否给 DBA 们一些建议?A师文汇:我同时也在负责蚂蚁数据库和存储团队,我觉得一方面从业务角度看,很多事情可以去做甚至可以做到更好。比如说单 TB 存储成本,每天在蚂蚁都有上千 G 的这种业务需要发布,我们如何能做到效率更高。当你去仔细学习业务或者去理解系统的时候,总是能发现还有很多问题可以去完善。什么是内卷,以前大家经常说,做事情要去打破边界,相互补位,其实从这个角度去做事情,就是真正的为了一个共同的目标,在大家都能接受的合理空间,去做一些跨领域或者跨边界的事情。这样的话可能对自己包括最终的业务结果都有很大的帮助。另一个方面,对于自身成长来说,我觉得是不能躺平的。大家可以看到,整个社会和业务发展有多迅速。在 2014 年的时候,没有这么多的分布式数据库和国产数据库,但是在过去的几年里,不光从数据库,TP 或 AP,包括计算、算法,AI 领域,其实都涌现了很多新的技术和产品。这个时代其实在用很快的速度前进,我们必须保证自己的成长和竞争力。Q面对不同类型的 DBA 发展方向(顾问、技术支持、运维)未来如何正确选择?A师文汇:我觉得 DBA 是一个非常有竞争力的职业或者角色。我认识的很多 DBA 都去做创业了,而且发展都很好。那么这些人是如何发展的这么好?因为他非常懂业务和数据库,面向最终的用户,了解用户的明确需求。所以能够去帮助用户做一些设计,沉淀,行为,想法。还有的 DBA 选择去做商业化解决方案或者交付,同样可以做的很好,因为他们可以协助业务把解决方案帮助到例如传统银行核心系统的迁移的项目上。对于 DBA 这个角色,下游是基础技术,上游是业务,中间是数据。所以这个角色其实是有能力成为任何一个类型的人才。当你把基础技术做扎实积累后,在职业上的选择是非常多的。DBA 想成长应该做什么,学习业务和技术,又要懂数据。最终的发展方向取决于自己想去做什么,然后做好这些方向的积累。dbaplus社群联合发起人 杨建荣Q国产数据库的迅猛发展,产品众多,对于 DBA,应该如何选择才有利于个人职业发展?A杨建荣:国产数据库其实在行业内会打一些标签,目前有几个类别。第一类是学院派数据库,比如达梦,人大金仓等,偏军工等传统行业,相对应用比较广泛。第二类是互联网派数据库。基于互联网场景的技术沉淀,比如 OceanBase、PolarDB、TDSQL 等,有互联网原生的业务场景,能够快速地孵化,有更多的技术沉淀。第三类是创业派数据库。比如像 TIDB、偶数等 NewSQL。创始人有海归背景的技术专家去推动这样的一些事情。第四类是企业派数据库。比如华为 GaussDB、中兴的 GoldDB 等等。这些企业之前就有一些大量的客户群体。然后在客户群体内能去孵化和把产品推到整个产品线。所以国产数据库近几年,会比以前的流行度和布局度更有落地性。Github 上有一句话,就是说技术在某种程度上也有国界,或者说从做 DBA、做技术的角度来说,需要有一个护城河的概念,因为有技术壁垒,需要去提前规划考虑。QDBA 要做什么才能做到像您这么优秀,类似 ACE 这样的身份?A杨建荣:第一个就是知识的积累。好记性不如烂笔头。我最早做 DBA 的时候是跨国企业,会有大量的数据库问题,Oracle 这个方向,每天会集中处理很多异常、报警、报错这种问题,相对来说很具体。但是会碰到一个困惑,虽然花很多时间解决了问题,但是最终解决的过程没有经过思考,只是把问题解决了而已。所以在这个过程中,我发现可以在问题处理的过程沉淀下来,沉淀成一个比较流畅的记录。在各类问题处理的过程中,会把潜在的因素都能够很好地结合起来。第二个就是笔记的标准。有利于知识积累,一方面节省自己的时间,另一方面就是让过程更流畅。把整个操作的过程能够通过类似博客文章的形式推送下来。第三个场景化应用。很多知识点是碎片化的,不成体系的。这里建议梳理成知识树或知识体系。通过梳理的过程,会发现一些潜在因素。第四个就是有针对性的分享。比如说所在公司比较小缺乏更多的场景。这种其实可以换一种思路,就是去帮别人解决问题,通过社区平台,甚至可以通过自己的博客等方式去帮助别人去解决问题。这个过程中,对个人的成长和收获来说,是非常大的。分享其实是先利己后利人的一个过程。一开始是为了方便自己,当积累一定量之后,对别人也有很大的帮助。之后在某些问题上会有一些共鸣,或者提供给别人一些帮助后,会有一种莫名的成就感等等。所以我觉得 ACE 这样的头衔或者身份,其实不是一个最核心的。是对于自己成长过程的一个标记。而且 ACE 的衡量的一个重要指标,就是对于整个技术社区的贡献度。Q国内的 DBA 应该如何正确面对开源?A杨建荣:我会分为三个视角。第一个视角是对于像 OceanBase 这样的国产数据库厂商,包括技术贡献者。国内在早期形成的一种技术氛围,就是沉默的大多数。大家可能拿来去用一些数据库,但是很难得到一些更有效的反馈。所以近些年来会有比较大的变化。在数据库的开源,包括在开源支持的态度上,从原来的被动接受或者拿来主义的模式到现在会去从各个角度去贡献自己一些力量。这个维度从文档 bug 或者社区协作上,都会有不同程度的体现。开源重在生态的建设。生态建设是需要一定的时间,而且在质量上是不能打折扣的。另一方面原来聊开源可能就是免费开源,相对来说是比较中肯或者理想的一个状态。但是现在去聊开源,他需要去做长期的准备,技术栈规划。整个技术栈对于开源来说,会从原来完全开放的一种状态,转为一种就是长期规划的过程。第三点是现在的公有云,对于 DBA 的发展方向也会有比较大的冲击。因为公有云的本质是资源的池化,是一个去服务化的过程。对于很多企业随着规模的发展,很多是需要私有云,或者说在性能、架构、对业务的服务支持上,需要有一些更有针对性的支持。所以私有云方向上,我的建议是预留 60% 到 70% 比较成熟稳定的开源技术栈。预留 30% 到 40%,去做前瞻技术栈的规划。在这个过程中,需要有深入的技术沉淀,对业务来说更平滑。但是公有云的方向,可能相对是更泛化的一个过程。因为基于公有云的云原生数据库,对于传统数据库方向上都会有一些挑战。我对开源的规划是 28 原则,就是大部分的数据库的选型或者使用,基于 RDS 为主基础上,在业务成长相对来说比较成熟稳定的,或者有一些增长,跨域访问等或更长久的规划上,可能 20% 的比例去考虑云原生数据库。QDBA 如何通过开源数据库产品享受这一波红利?A杨建荣:我觉得可以提炼三点。第一点是通过开源数据库,包括分布式数据库。在某种微观程度上,在面向高可用的难题上是能够迎刃而解。或者说是一种辅助,包括在微观数据库方向上,其实会有一些 HA 的工具等等。但是在原生分布式数据库中,这种问题可能就不复存在了。在这个方向上,会提高服务的高可用能力。第二点是选择开源数据库更多是数据库的开源共存状态,本质上会做很多场景的互补。比如刚才提到的,比如在 AP 领域,原来是做 TP 的方向上,可能在 AP 上需要做流转或额外的一些流程。但是现在可能是做了一体化的方式,会有一种 HTAP 的场景。对于业务来说,相对来说会更容易更适配去接触业务的迭代速度。在这个方向上举个例子,原来数据库去做复杂的查询,字段也非常多,可能在 MySQL5.7 有时候就有一些复杂的查询,可能需要 30 分钟。MySQL8.0 可能一分钟就能成功。但使用 HTAP 的方案,发现可能只需要 1-2 秒就可以解决。所以通过这种方式在使用开源数据库产品对很多研发同学来说,和使用的 MySQL 时一样没有太大的技术壁垒。所以在接触的过程中,也会逐步信任和沉淀成为深度的客户。第三点是开源数据库产品的质量是有保证的。但是产品用得好不好,或者在用的过程中如何去更持续更有效的迭代。在社区包括反馈机制上,能够去更好地形成一个闭环。包括很多类似 OceanBase 的开源数据库产品,不只是开发出了一个数据库场景,让大家去使用,实际是逐渐形成社区生态,在生态之下,可以让整个的数据库产品,包括功能、易用性、体验上。用户都会提出不同角度的想法。所以对于开源数据库的产品使用来说,无论是对于研发人员,包括开发数据库内核的技术人员,是一个互补双赢的状态。QDBA 在面临业务变化的时候,如何快速实现技术和业务的转型?A杨建荣:第一个层面属于未雨绸缪或长期规划的过程。很多情况下,数据库方案亟待解决的时候,再去想方案的话相对来说是一个延迟或者拖后的状态。这样就形成了恶性循环。在这种场景下,需要提前做一些未雨绸缪的事情。包括技术栈,以及提前和研发去沟通业务痛点,或潜在瓶颈。在这个过程中,可能方案 A 可以满足。但是方案 A 在临时可用的状态下,会去沉淀方案 B,尽可能完成平滑替代的状态,进而实现业务快速转型,应对变化。另外一个层面是大部分时候是基于业务场景需求去做一些设计和改进。然后业务场景的很多变化,也是逐渐演进的过程,所以在前期去接触方案的时候,在一个特定的时间,肯定不是最好的方案。但是通过全盘考虑后,能够在此基础上去完善一个更合适的方案。线上答疑解惑环节Q分布式数据库未来会全面取代传统关系型数据库吗?分布式数据库未来形态会是HTAP吗?A师文汇:我的个人观点是比较深信这件事的,目前阿里、蚂蚁的核心系统,包括网商银行,海外的部分银行和支付机构,OceanBase 已经赋能很多这样的企业。商业化以后,目前数百+不同行业的客户,都选择用分布数据库彻底取代传统的关系数据库,让企业更加可控。所以从案例实践上,我认为分布式数据库是可以取代关系型数据库的。分布式数据库是诞生在互联网和移动互联网这个时代的,天生有后发优势。针对这个方面做了很多设计,分布式数据库的未来形态会是 HTAP,举一个例子,比如营销系统,通常会圈定一些人群,然后去思考这群人是不是能够产出更好的广告 ROI,于是就去做这样一个实验。传统的数据库可能要做ETL导数据,申请代理权限等这些会消耗掉很多时间,但 HTAP 数据库,它其实是可以在这个数据上直接去做挖掘或者分析。就如创始人阳振坤老师分享一篇文章里说的一样,分布式数据库就像电动车特斯拉,代表着未来的发展趋势,而 HTAP 是对数据库整个行业的成本控制、效率提升,会有非常大的改观。Q面对未来的各式各样的新型数据库,应该从哪几个方面入手了解呢?A杨建荣:新型数据库的发展方向是基于大数据的 4V 背景,包括数据规模大、数据变化快、数据种类杂、数据价值密度低等等。在这个背景下,新型数据库是一个相对新颖的技术体系。对于数据库规模大,关联的是分布式数据库管理系统等,比较有代表的如 OceanBase,Spanner,MongoDB 等等,都属于这种新型数据库的领域;数据变化比较快,在这个方向上提炼出来数据库的一个分支,就是流数据库管理系统,如 Aurora 等;另外两个维度会小众一点,或者说它的潜力和价值可能是待挖掘的一个状态。如根据数据的种类会延伸出来两个分支,一个分支是图数据库,比如 New4J,另外一个是这个时空数据库 OceanRT,DITA 等;最后一个就是数据的价值密度比较低的背景,提出了众包数据库,相对来说更学术,或者还是在探索的阶段,这个方向像 CDB、Qurk 等等,相对偏学术或者说待孵化的阶段。QDBA的职业发展方面,对于不会编程的DBA,是否应该花费精力选择一种编程语言去学习呢?对于DBA转型数据库产品研发有哪些看法?A杨建荣:我把两个问题合起来回答一下。第一个问题是不会编程的DBA 他是否应该去学习一个编程语言?我的强烈建议是需要去学习的。DBA 从职业发展上来说,可以分为五个维度:高可用的架构的能力、分布式架构的能力、数据模型优化的能力、服务化建设的能力、资源规划和治理的能力。通过以上几个维度,我觉得对于 DBA 来说,如果不会编程,就需要在业务或者某些方向上需要有一些积累,至少得有一个方向是更擅长的。学编程语言对于 DBA 的职业发展上来讲属于服务化建设的能力。因为服务化建设的能力,从研发到业务是一个直接能感受到的高效和专业的一种方式。所以需要去学习一种编程语言。另外一个视角就是当你学习一种编程语言的时候,你会从研发的视角去思考这个问题,而不是单纯的从运维 DBA 的角度去单一的思考问题,从而更容易抓到这个问题的本质。第二个问题是转型数据库产品研发,更偏向数据库服务化的建设能力,需要去考虑一个点,就是说对数据库的这个方向上真正的技术理想或者说技术兴趣点是否认可?如果只是单纯的做数据库产品研发,我觉得可能它是一个偏颇的方向。另外一个就是在业务上有很深的积累或者数据库的支持方向上有很多的想法,再去转型做数据库的产品研发是比较顺利的。因为产品研发只是 DBA 领域中的一个分支,更多取决于自己的兴趣点。 Q普通中小型企业经过一段发展之后,数据库已经有非常大的惯性了。现阶段企业和个人怎么转型国产化呢?A师文汇:对于个人来说的话,学习是自己的事情,即使公司没有用这个数据库,你其实还是可以去学习的。对于企业来说的话,企业是会有很多的研发惯性,习惯用了一种东西以后,可能很难摆脱去切换到另外一种产品,尤其是数据库这种核心系统,相当于一辆车的发动机,可能更不容易。但是我觉得从 DBA 或者是企业的视角可以去考虑几个问题。第一个是说如果想换成国产数据库,有没有比较低的代价?假设我们用的是 Oracle 模式,那是不是有一些国产数据库它能比较好地去兼容 Oracle,同时又能给我们带来一些便捷。第二个可以从降本增效相关的一些角度去考虑。是不是可以引入一种分布式数据库去解决成本效率的问题做一些尝试。很多企业都在考量 ROI,很多的新型的数据库在这方面做得都比较好,可以考虑做一些演进的尝试。围绕 8020 原则,守好主要的关口,找一些边缘的业务做创新,当真的能够尝到技术红利以后,然后再去考虑公司的整体方向去采纳一种新型数据库。《对话 ACE》第二期通过两位老师对 DBA 职业发展,如何更好将业务和技术相结合,包括对国产数据库和开源数据库的认知和选型,都给出了精彩的观点。未来 OceanBase 将持续开展《对话 ACE》活动,敬请关注。
挑战大数据 金仓助力三农自助支付系统
本文讲的是挑战大数据 金仓助力三农自助支付系统,中国农业银行是我国四大国有独资商业银行之一,是中国金融体系的重要组成部分,总行设在北京。作为一家城乡并举、联通国际、功能齐备的大型国有商业银行,中 国农业银行一贯秉承以客户为中心的经营理念,坚持审慎稳健经营、可持续发展,立足县域和城市两大市场,实施差异化竞争策略,着力打造“伴你成长”服务品 牌,依托覆盖全国的分支机构、庞大的电子化网络和多元化的金融产品,致力为广大客户提供优质的金融服务,与广大客户共创价值、共同成长。
中国农业银行网点遍布中国城乡,是国内网点最多、业务辐射范围最广的大型国有商业银行。依托遍布各地的网点,采用世界尖端科技,中国农业银行建成了国内最大的金融电子化网络,实现了结算业务的全国联网处理。目前,农业银行信息化建设步伐加快,信息化建设综合实力明显增强。
农业、农村、农民问题关系党和国家事业发展全局,解决好“三农”问题始终是党和政府全部工作的重中之重。农村金融是现代农村经济的核心。要实现农业发展、农村繁荣和农民增收,离不开金融的强有力支持。
中国农业银行多年来始终高度重视“三农”金融服务工作。经过多年的改革与发展,中国农业银行初步形成了多层次、广覆盖的“三农”金融服务体系,县域机构网点可持续发展能力不断增强,农村存贷款持续增加,金融服务已基本覆盖全国县域。
在 三农金融服务体系的建设中,信息系统最主要的建设目标就是要保障系统正确、稳定、安全的运行,信息安全是关系到银行金融机构能够正常、稳定运转的重要前 提。银行业所掌握的信息往往会涉及到用户甚至国家的核心利益,维护银行金融信息的安全保密是银行业重要职责,因此银行信息系统在做到正确稳定运行的同时又 要保证客户信息的保密性。但根据权威机构报告显示,实际每年针对银行、金融机构的恶意攻击和侵入近年都在逐年增高,国内外黑客侵入案例时有发生。对于多国 政府、金融企业及其他众多关键部门应用广泛的数据库ORACLE,屡次爆出的“数据门”严重安全问题,且无任何及时补救措施,任由黑客进出自由。诸如此类 层出不穷的数据安全问题,令人不安。
商业价值及意义
为了弥补过去系统安全机制不足,业务应用范围受局限等问题,并进一步落实国家信息安全等级保护工作要求,中国农业银行积极建设具有本行特色的高安全等级保护下的电子金融自助支付系统,并广泛采用了一系列我国自主知识产权的安全产品。
该系统的建设弥补了我国目前的农村金融服务手段的相对不足,安全自助支付终端作为一种新型的自助服务机具,具有成本低、使用简单、方便、快捷的特点,适合在 农村地区推广使用,并可作为农行在广大农村地区提供三农金融服务的支持平台,开发惠农卡小额贷款服务等功能,为农行服务三农提供有力支撑。该系统服务于涵 盖农行“惠农卡”用户、普通借记卡用户、农民工卡用户以及县域等批发市场商户经营者、涉农小企业及个体工商户在内的广大客户,较大程度的提高农行服务“三 农”的水平与质量。
通过该系统,用户可以方便的使用三农自助金融终端享受到常用的查询、缴费、消费结算、转账的金融服务,也可以享受更高级别的金融服务,如小额借贷、外汇买卖、保险、理财服务等,并获得高等级的安全保护。
三农高安全等级金融自助支付系统的成功应用,是我国金融领域应用自主知识产权的安全产品获得的又一次成功。
在此之前,由于在银行、金融等领域的相关业务系统对数据库的要求较高,国产数据库相较于国外数据库起步较晚,成熟度不如国外数据库,加之市场上对国产数据库 的认可度不够,所以国产数据库迟迟不能够进入银行相关业务系统领域,金仓数据库KingbaseES凭借产品的高稳定性、可靠性、以及良好的性能表现,通 过了严格的测试,成为唯一参与三农安全金融自助支付系统的国产数据库厂商,系统的成功上线运行,再次证明国产数据库KingbaseES在高可靠、高要求 的系统中运行的可行性。也更加坚定人大金仓开拓国产数据库市场,发展国产数据库事业的信心。
客户需求及业务挑战
按计划,金仓数据库将部署在试点省份的省农行运行中心的业务系统服务器,以及北京农行运维中心的CA系统服务器上,在试点省份下各县市部署自助交易终端。整个系统对数据库产品在通用性、易用性、可靠性和稳定性、移植扩展性和安全性都有较高的要求。
(一)客户需求
通用性
易用性
移植扩展性
(二)金仓数据库所满足指标要求
金仓数据库KingbaseES是大型通用的关系数据库系统,采用成熟的关系数据库模型,支持SQL92、SQL99标准符合99%以上,支持GBK、 GB18030、UTF-8、ASCII等字符集,支持BLOB、CLOB等大对象数据类型,拥有几十TB级别数据量的成功案例,产品自带COPY数据导 入导出工具,能够支持多种格式的文本数据导入导出。
金仓数据库KingbaseES提供了与产品相关的一系列管理工具,并支持客户端java工具远程管理多台服务器实例功能,以及通过浏览器登录Web管理工 具管理数据库服务器功能。其中java管理工具包括企业管理器、查询分析器、物理备份还原工具、逻辑备份还原工具、数据库初始化工具、数据迁移工具、数据 库调度管理工具、数据库监控工具、控制管理器、命令行工具等。能够极大方面数据库管理员以及开发人员的使用及管理。
金仓数据库KingbaseES基于MVCC(多版本并发控制)机制、支持事务、REDO日志功能,通过联机事务日志优先写等机制保证数据库在面对数据库所 在机器崩溃、操作被强制终止等情况下保证事务数据的一致性、完整性以及事务的可恢复性。KingbaseES支持物理联机备份及逻辑备份还原功能,并在此 基础上可实现数据库的自动备份功能等解决方案,通过作业调度系统或操作系统提供的计划任务模块,提供周期性的自动备份功能。应用可以按照配置的备份周期和 备份位置自动执行数据库的备份工作,提高了系统的可靠性,也减轻了系统的运行维护成本。;KingbaseES同时支持双机热备、Standby等高可 靠、高可用解决方案。
金仓数据库KingbaseES提供数据迁移工具,可将异构数据库平滑迁移至KingbaseES,在本项目中主要是针对ORACLE数据库迁移,将前期基于ORACLE数据库上开发的应用程序及初始数据,已平滑迁移至金仓数据库KingbaseES。
金仓数据库率先通过公安部结构化保护级(第四级)的安全认证并获得销售许可证,成为第一家获得该标准认证的国产数据库企业。KingbaseES完整实现包 括形式化证明、多重身份鉴别、入侵检测与报警、可信路径、推理控制、隐蔽信道分析等全部结构化保护级(第四级)所要求的技术和功能要求,在身份鉴别、用户 权限,以及数据访问、存储和传输等方面的系统性安全重构提高了数据库系统的整体安全性,可以从容应对复杂多样的数据安全管理的业务场景,保障敏感数据的安 全。
(三)业务挑战
在 试点省份业务系统对KingbaseES数据库的相关业务操作主要集中在保存相关机具设备信息,绑定卡号属性信息,记录交易流水、记录业务相关日志,柜员 操作日志信息等,面向前期投入预设置的500台交易终端,数据库会持续地接受并发的增删改查操作,对管理者,根据数据库中数据对系统进行交易查询,月度报 表等功能,需要在大数据量基础上进行大量复杂的多表连接、排序、聚集查询运算等对系统性能要求较高的操作,在北京农行部署的CA系统服务器上的数据库则需 能保证对系统授权管理的认证部分的业务操作能够持续正常运行,对稳定性有较高要求,不可因为CA服务器的不稳定对整个交易系统造成影响。结合整个系统的整 体情况,需要数据库要有很高的稳定性和可靠性,以及良好的性能。面对较大并发的压力下,需要能够7*24小时持续进行正常业务操作,并且能够保证数据的一 致性、完整性和安全性。
方案部署及特点
(一)整体架构
部署地点分试点省市农行运行中心和北京农行运行中心两个地点,系统拓扑图如下图所示:
如图所示,试点省份机房部署业务系统、北京机房部署CA系统,并应用实施相关数据库,在红旗Linux镜像方式HA高可用解决方案上安装部署数据库。试点省 份下设部署的交易终端会通过网络宽带线路或电话线路连接系统,试点省份机房中对应部署的服务器为:交互服务器、监控服务器、授权服务器、授权监控服务器、 授权服务器代理、签名验签服务器等。
通过系统业务分发到不同服务器,其中对业务系统事务操作会连接部署在省农行运行中心的业务系统,认证操作事务,会分发事务连接到北京机房CA系统服务器上, 获取认证后返回信息继续进行相关操作。交易操作事务则会通过分发连接到渠道后台,通过渠道后台连接到银行后台再连接到银行数据中心的核心交易系统完成交易 返回,业务系统记录保存相关信息。
(二)系统部署相关软件:
红旗redflag linux AS3 操作系统,及镜像方式HA集群方案。
金仓数据库KingbaseES V6.1。
金蝶中间件Apusic V6.0
IBM CICS Transaction Gateway V6.0.2
(三)数据库部署结构
在业务生产系统上,通过HA高可用软件,可监控KingbaseES数据库服务,在主机上数据库服务发生意外终止等情况时,能够将业务切换到备机上运行,保 证系统的高可用性,也同时保证数据在两台服务器上的冗余备份,另外通过备份服务器上制作的数据库备份计划,每日凌晨两点开始自动备份生产系统上的生产数据 至备份服务器,保证系统在发生最严重数据损坏时,还能在备份数据库上找到系统崩溃时当前凌晨2点之前的备份的所有数据。在管理员机器上部署数据库管理工具 则是方便管理员对系统进行远程管理等操作。
(四)系统界面
目前该项目金仓数据库在试点省份已完成部署工作,并在试点省份数据中心成功上线稳定运行,接受系统日常交易,在系统中KingbaseES已在以下主要方面得到了应用:
成功将原基于Oracle数据库上开发的系统成功移植到KingbaseES数据库上,要求KingbaseES需对Oracle具有良好的兼容性,以及需提供功能完备的迁移工具及迁移方案。整个移植过程已结束并已通过测试人员测试以及生产业务的正式测试。
大型数据库所需具有的功能全面性及通用性,在项目后阶段开发功能中,KingbaseES保证提供良好的通用性功能,以及项目对数据库已有的特殊要求,满足客户及开发者对系统功能的开发。
大数据量的批量导入、导出功能,多格式的导入导出方式,使系统实现每日与银行主机传入数据的自动对账功能。
数据库高效、稳定运行。同时数据库具有高安全性;金仓数据库KingbaseES率先通过公安部结构化保护级(第四级)的安全认证并获得销售许可证,和国际 标准相比,安全四级近似等同于TCSEC/TDI的B2级,CC的EAL5级。这意味着以金仓数据库为代表的国产数据库的安全级别已经超越了国外同类数据 库产品,这对构建我国自主可控的信息安全体系具有重大意义。
作者: 李伟
来源: IT168
原文标题:挑战大数据 金仓助力三农自助支付系统
安然度夏 人大金仓为国家电网智能电网保驾护航
自7月7日进入小暑节气以来,北京天气持续闷热。7月11日上午12时34分,北京地区电网最大负荷达到1958.3万千瓦,突破了2015年的历史最大负荷1856.6万千瓦,增长率为5.5%。其中,北京本地电厂最大发电占比约33%,联络线外受电力占比约67%。北京市电力公司相关负责人表示:“受气温影响,空调降温负荷有了明显增长,其中空调降温负荷占比约46%,这也是电网负荷增幅较大的主要原因。我们主要通过调整运行方式,使电网主要设备负载率基本控制在80%以下。——摘自《中国能源报》
电力行业是国家最重要的支撑之一,关系到国家能源安全和国民经济命脉。国家电网公司作为关系国家能源安全和国民经济命脉的国有重要骨干企业,以投资建设运营电网为核心业务,为经济社会发展提供坚强的电力保障。随着夏季用电高峰的到来,电网负荷进一步攀升,特别是长时间高温高负荷天气将对电力设备安全运行带来严重影响,电网运行形势日益严峻,所以国家电网智能电网的稳定和高效运行关乎每个人的切身利益。
根据电力行业的业务特点与信息化业务需求,人大金仓为国家电网智能电网从数据库设计、定制开发、数据容灾以及数据运维四个方面提供一体化解决方案。另外人大金仓从客户需求、服务流程、服务队伍、服务质量管理等方面提供全方位的支撑。金仓数据库KingbaseES应用于智能电网调度技术支持、电力二次系统安全防护平台和配电自动化主站等系统,使用高可用、高可靠技术(HA、Standby)快速、有效的保障电网相关业务7*24小时不间断运行。
长期以来,作为专业的数据库管理系统产品及解决方案供应商,人大金仓无论在数据库运维服务还是以大数据相关产品创新应用为主的服务,都积极贯彻执行“专注、融合、精细化”的服务理念。为用户提供便捷的服务,人大金仓与操作系统、中间件、存储等基础软、硬件厂商以及应用系统集成商协同搭建应用系统平台。按需出发,实行定制化产品方案和数据库解决方案,从而打造全生命周期立体化服务体系。
全面洞察客户需求
人大金仓建立专门的客户服务中心,通过客户关系管理系统(CRM)提供热线支持服务,设立全天候热点服务电话、电子邮箱,提供每天24小时,每周7天全年不间断的远程技术支持,由专门的技术人员提供全面的技术支援,随时对用户问题或故障做出快速响应。
规范的服务流程
人大金仓提供一整套规范的技术支持服务运作体系和流程,指定专职客户服务经理以及稳定的技术服务队伍,提供故障诊断、技术咨询等全方位的技术支持服务。
客户服务中心利用先进的数据库技术和系统管理软件平台,建立完善的客户服务管理流程,提供热线电话支持,由专业工程师回答客户日常遇到的问题,确保为客户提供方便、快捷、高质量、专业化服务。建立的运维服务档案库,记录和项目相关的产品版本发布记录、服务记录、技术文档,人大金仓及时对数据库运行环境进行系统巡检并生成系统运行报告,针对数据库日常运维服务处理的事件情况,设有专人负责整理常见故障、处理方案等重要技术资料。对用户问题或故障做出快速响应。从而确保为客户提供方便、快捷、高质量的专业化服务。
专门的服务队伍
人大金仓拥有专业的技术服务队伍,负责收集、处理用户需求,并向用户提供数据库以及数据库解决方案等服务。
为更好服务于国家电网智能电网调度技术支持系统项目,人大金仓建立了完善的项目服务团队,即成立电网项目组:专门的售前技术咨询、售后技术服务、数据库研发和商务团队,可根据用户、集成商以及应用厂商技术需求,可随时到现场,与项目组一起工作。售前技术人员主要提供培训、安装、配置、数据迁移、应用迁移、出厂测试等服务。项目实施完成后,由售后人员提供服务,如:重要节假日的现场值守、日常维护、巡检、应急响应、培训等工作。
严格的服务质量管理
自2002年以来,人大金仓大力推行ISO9001及国标GB/T 19001-2000质量管理体系,在售后服务与技术支持的过程中,严格按照ISO9001程序文件规定的售后服务(发货、安装、调试、培训、维护、维修)的质量控制方法和要求,为用户提供规范的售后服务。确保各项工作可以有计划按步骤地进行,最重要的是确实保证了用户的利益,保证提供的产品及服务满足用户的需要。
目前,金仓数据库在电力系统全面开花,部署超过1000套,遍布16个省的150多个单位,在华北电网以及超过8个省份的调度技术系统及下属地中部署,电网项目中单项目数据量最大超过20TB级、并发连接数最大超过1000,稳定运行5年以上。
随着经济的大发展,对电力的依赖程度会越来越高,没有一个坚强、安全、稳定的电力供应环境,各方面的工作都要受到影响。人大金仓协同国家电网智能电网调度技术支持系统项目的全面实施,努力为经济社会发展和人民生活提供坚强、可靠的电力保障,具有重要的现实意义。
原文发布时间为:2016年8月9日
本文来自云栖社区合作伙伴至顶网,了解相关信息可以关注至顶网。