人大金仓分析型数据库使用之创建和管理表

这篇具有很好参考价值的文章主要介绍了人大金仓分析型数据库使用之创建和管理表。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言

一、创建表

1、选择列的数据类型

2、设置表和列约束

3、选择表分布策略


前言

        数据库的表与任何一种关系型数据库中的表类似,不过其表中的行被分布在系统中的不同实例上。 当用户创建一个表时,用户会指定该表的分布策略。        


一、创建表

        CREATE TABLE命令创建一个表并且定义它的结果。当用户创建一个表示,用户需要定义:

  • 该表的列以及它们的数据类型
  • 大型表的表分区策略
  • 表存储在磁盘上的方式
  • 表的分布策略,这决定了 数据库如何在 实例 之间划分数据
  • 任何用于限制列或者表中能包含的数据的表或者列约束

1、选择列的数据类型

        一个列的数据类型决定了该列能包含的数据的类型。 选择的数据类型应使用最少的空间,但仍能容纳用户的数据并且能最好地约束数据。 例如,对字符串使用character数据类型,对于日期使用date或者timestamp数据类型,而对数字使用numeric数据类型。

        对于包含文本数据的表列,应指定数据类型为VARCHAR或者TEXT。 不推荐指定数据类型为CHAR。 在数据库中数据类型VARCHAR或者TEXT会把加在数据后面的边距(在最后一个非空白字符后面增加的空白字符)处理为有效字符,而数据类型CHAR不会这样做。

        使用能容纳用户的数字型数据的且允许未来扩张的最小数字数据类型。 例如,为适合INTSMALLINT的数据使用BIGINT会浪费存储空间。 如果用户预期用户的数据值将会随着时间扩张,应该考虑到在装载大量数据后从较小的数据类型更改成较大的数据类型需要很大的代价。 例如,如果用户当期的数据值适合SMALLINT,但是很可能值会扩张,这样INT就是更好的长期选择。

        对用户计划要用在交叉表连接中的列使用相同的数据类型。 交叉表连接通常使用一个表中的主键和其他表中的外键。 当数据类型不同时,数据库必须转换其中之一以便数据值能被正确地比较,这会增加不必要的开销。

2、设置表和列约束

        用户可以在列和表上定义约束来限制表中的数据。数据库支持和PostgreSQL相同的约束,但是有一些限制,包括:

  • CHECK 约束只能引用它所在的表
  • UNIQUE PRIMARY KEY约束必须和它们所在表的分布键和分区键兼容
  • 用户在分区表上定义的约束将作为整体应用到分区表上。用户不能在该表的单独的部分上定义约束
  • 允许 FOREIGN KEY 约束,但不会被强制

        检查约束允许用户指定一个特定列中的值必须满足一个布尔(真值)表达式。例如,要求正的产品价格:

=> CREATE TABLE products
( product_no integer,
name text,
price numeric CHECK (price > 0) );
        非空约束指定一个列不能有空值。非空约束总是被写作为列约束。例如:
=> CREATE TABLE products
( product_no integer NOT NULL,
name text NOT NULL,
price numeric );
        唯一约束确保一列或者一组列中包含的数据对于表中所有的行都是唯一的。 该表必须是哈希分布或复制表(不可以是DISTRIBUTED RANDOMLY )。 如果表是哈希分布的,约束列必须是该表的分布键列(或者是一个超集)。例如:
=> CREATE TABLE products
( product_no integer UNIQUE,
name text,
price numeric)
DISTRIBUTED BY (product_no);
        主键约束是一个UNIQUE 约束和一个 NOT NULL 约束的组合。 该表必须是哈希分布(非DISTRIBUTED RANDOMLY )的,并且约束列必须是该表的分布键列 (或者是一个超集)。 如果一个表具有主键,这个列(或者这一组列)会被默认选中为该表的分布键。 例如:
=> CREATE TABLE products
( product_no integer PRIMARY KEY,
name text,
price numeric)
DISTRIBUTED BY (product_no);

3、选择表分布策略

        所有的数据库表都会被分布。 当用户创建或者修改一个表时,用户可以有选择地指定DISTRIBUTED BY(哈希分布),DISTRIBUTED RANDOMLY(随机分布),或DISTRIBUTED REPLICATED(全分布)来决定该表的行分布。

        在决定表分布策略时,请考虑以下几点:

  • 均匀数据分布均 为了最好的性能,所有的 实例 应该包含等量的数据。如果数据不平衡或者倾斜,具有更多数据的实例 就必须做更多工作来执行它那一部分的查询处理。 请选择对于每一个记录都唯一的分布键,例如主键
  • 均匀查询处理  为了最好的性能,所有的 实例 应该处理等量的查询负载。 如果一个表的数据分布策略与查询谓词匹配不好,查询负载可能会倾斜。 例如,假定一个销售事务表按照客户ID 列(分布键)分布。 如果查询中的谓词引用了一个单一的客户ID ,该查询处理工作会被集中在一个 实例上

         复制表分布策略(DISTRIBUTED REPLICATED)应该在小表上使用。 将大表数据复制到每个节点上无论在存储还是维护上都是有代价的。 复制表最基本的用例是:

  • 可以对节点执行删除用户定义的函数限制
  • 频繁使用的表不需要广播到所有节点可以提高查询性能
        CREATE TABLE命令的可选子句 DISTRIBUTED BY, DISTRIBUTED RANDOMLY DISTRIBUTED REPLICATED 决定了表的分布策略。 默认的哈希分布策略使用PRIMARY KEY(如果有的话)或表的第一列作为分布键。 几 何信息列或用户自定义数据类型的列是不能作为 数据库分布列的。 如果找 不到合适的哈希分布的列,数据库就选择随机分布策略。复制表没有分布列,因为每行都分布在 MPP 数据库所有节点上。

         为了保证哈希分布数据的均匀分布,最好选一个唯一键作为分布列。 如果找不 到,则选择DISTRIBUTED RANDOMLY。例如:

=> CREATE TABLE products
(name varchar(40),
prod_id integer,
supplier_id integer)
DISTRIBUTED BY (prod_id);

=> CREATE TABLE random_stuff
(things text,
doodads text,
etc text)
DISTRIBUTED RANDOMLY;

        如果没有主键,但是有唯一索引存在,则选择它为分布键。文章来源地址https://www.toymoban.com/news/detail-702910.html

到了这里,关于人大金仓分析型数据库使用之创建和管理表的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 麒麟操作系统安装人大金仓数据库

    硬件:内存512M以上,磁盘空间10G以上 软件:主流Linux操作系统,本机使用kylin-v10 安装包准备:官网下载数据库文件镜像以及授权文件 https://www.kingbase.com.cn/rjcxxz/index.htm 把 /etc/systemd/logind.conf 文件中的 RemoveIPC=no 设置,再执行一下指令 注意:创建安装系统用户 kingbase 之后,如

    2023年04月20日
    浏览(65)
  • Kettle连接人大金仓KingbaseES数据库

    一、方法1:某些情况下连接上数据库后,加载数据较慢,甚至卡死时,可往下参考方法2。 1、驱动下载。在人大金仓官网–通用型数据库–接口驱动– JDBC 驱动程序 X86(第一个驱动包)下载出来,直达链接(点此直达)。 2、解压驱动包。注意,驱动包zip文件里面共有6个文

    2024年02月05日
    浏览(155)
  • 人大金仓数据库KingbaseES 安全功能入门学习

    安全、身份鉴别、用户管理、审计 金仓数据库管理系统KingbaseES V8.0支持微软Windows 7、Windows XP、Windows 2003、 Windows 2008等32位及64位发行版本。 准备需要安装的金仓数据库管理系统KingbaseES安装程序和jdk1.8及以上的jdk环境。 1.3.1 安装用户 在安装金仓数据库管理系统KingbaseES V8.0时

    2024年02月05日
    浏览(216)
  • 人大金仓 KingbaseES 数据库更换 license文件

    人大金仓数据库单机和集群license数量不同。 单机一般一个,集群一般两个。 1、查找老的license.dat文件,在任何位置执行以下命令: [root@kingbase bin]# find / -name license.dat /opt/Kingbase/ES/V8R3/license.dat /home/flysync/license.dat /data/kingbase/R6/license.dat 2、kingbase授权文件确认,一般license.dat全

    2024年02月11日
    浏览(56)
  • Docker部署人大金仓KingBaseEs V8数据库

    本文章用例人大金仓版本为KingbaseEs V8R3 , 详细信息为:kingbase (Kingbase) V008R003C002B0290。 需要安装连接工具Dbeaver。 Dbeaver安装教程地址 :https://blog.csdn.net/fy512/article/details/121335289 [人大金仓官网]https://www.kingbase.com.cn/ [人大金仓官方开发授权文件获取] https://www.kingbase.com.cn/sqwjx

    2024年02月11日
    浏览(69)
  • CYQ.Data 支持 KingbaseES人大金仓数据库

    KingbaseES是一种关系型数据库管理系统,也被称为人大金仓数据库。KingbaseES 是北京人大金仓信息技术股份有限公司研发的,具有自主知识产权的通用数据库产品。 该产品面向事务处理类应用,兼顾各类数据分析类应用,可用做管理信息系统、业务及生产系统、决策支持系统、

    2024年03月10日
    浏览(82)
  • 麒麟V10服务器上安装与运行人大金仓数据库

    1、简介 人大金仓数据库(KingbaseES)是面向事务处理类、兼顾分析类应用领域的新型数据库产品,致力于解决高并发、高可靠数据存储计算问题,是一款为企事业单位管理信息系统、业务系统量身打造的承载数据库,目前性能已全面升级,是具有高成熟度的数据库产品。 2、

    2024年02月15日
    浏览(45)
  • Spring Boot整合JPA和人大金仓(Kingbase8)数据库

    在开发Java应用程序时,使用JPA(Java Persistence API)可以方便地进行数据库操作。而人大金仓(Kingbase8)是一款基于国产化研发的关系型数据库。本文将介绍如何在Spring Boot项目中整合JPA和人大金仓数据库,并提供相关实例来演示使用方式。 在开始之前,请确保已经满足以下条

    2024年02月12日
    浏览(49)
  • 金仓数据库KStudio使用手册(3. 数据库管理)

    目录 3.1. 数据库连接管理 ¶ 3.1.1. 连接的创建,编辑 ¶ 3.1.2. SSL链接配置 ¶ 3.1.3. 驱动属性 ¶ 3.1.4. 参数中的变量 ¶ 3.1.5. 连接、断开连接与重新连接 ¶ 3.2. 导航树 ¶ 3.2.1. 对象的过滤 ¶ 3.2.2. 对象的分页 ¶ 3.3. 数据库对象管理 ¶ 3.3.1. 数据库对象的创建和编辑 ¶

    2023年04月17日
    浏览(49)
  • 【KingbaseES】银河麒麟V10 ARM64架构_安装人大金仓数据库KingbaseES_V8R6(CentOS8)

    🦄 个人主页——🎐开着拖拉机回家_Linux,Java基础学习,大数据运维-CSDN博客 🎐✨🍁 🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批评指正!🍁🐥 🪁🍁🪁🍁🪁🍁🪁🍁 🪁🍁🪁🍁🪁🍁🪁 🪁🍁🪁🍁🪁🍁🪁🍁🪁🍁🪁🍁 感谢点赞和关注 ,每天进步

    2024年02月08日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包