同属华为高斯数据库。
Teradata可连接到通道连接的系统,如主机或网络连接的系统。AI原生数据库是Gauss的主要特点之一。华为将AI引擎内置到GaussDB全系产品中,使其具备一定的自运维、自管理、自调优、故障自诊断和自愈的能力。
Teradata是比较比较受欢迎的数据库管理系统,定位就是大数据仓库系统,定位比较高,主要应用于数据存储和数据处理,处理速度比Hive要高10倍左右。华为的Gauss数据库是一个开源数据库,基于PostgreSQL9.2开发。我们知道PostgreSQL本身就是一个开源数据库品牌。现在除了OracleDB、微软的SQLServer等传统老牌数据产品之外,目前新开发的数据库产品,开源数据库占比较大的部分。
teradata建表DDL
有几种方法可以在Teradata中获取PK / FK信息,但如果没有为表定义PK / FK,则所有信息都可能失败。并且很有可能(特别是对于FK)他们没有在数据仓库中定义。在这种情况下,您需要在数据模型上获得一些外部文档。
_bc.IndicesV包含所有索引,但每个索引每列有一行,例如4列PK导致4行,以“ColumnPosition”顺序定义:
__niqueFlag”=’Y’表示它是唯一索引
__ndexType”表示在Create Table中的定义方式: ’K’=主键,’U’=唯一约束,’P’=主要索引,’S’=次要索引
_bc.All_ri_childrenV保存已定义的FK。
_绻鲇糜诘ジ霰恚蛩饕摹_ELP INDEX my_table”,但在这种情况下,我更喜欢“SHOW TABLE my_table”,它返回完整的源代码。
●是否允许重复记录
❍SET 不允许记录重复
CREATE SET TABLE table1 …
❍MULTISET 允许记录重复
CREATE MULTISET TABLE table1 …
●数据保护
数据保护要结合FALLBACK和JOURNAL (流水或日志)。
FALLBACK是Teradata的一种数据保护机制,数据表的每一条记录都同时存放两份,而且位于不同的AMP所控制的存储单元中;当数据发生问题或者AMP失败 时,可以利用存放在其他AMP上的数据保证对数据表的访问。
-FALLBACK 使用FALLBACK保护机制
-NO FALLBACK 不使用FALLBACK保护机制
日志有BEFORE和AFTER两种,分别保存了一条记录变化前后的状态。当系统出错时,可以利用日志进行恢复。
存储空间选项
DATABLOCKSIZE用来指定数据块大小,最小的数据块为6144字节,最大的数据块是32256字节。
FREESPACE用来定义在每个磁盘柱面上保留的空间(0-75%)。
例:
CREATE MULTISET TABLE table_1
, FALLBACK, NO JOURNAL
, FREESPACE = 10 PERCENT
, DATABLOCKSIZE = 16384 BYTES
(field1 INTEGER)
字段数据类型属性。可定义如下属性:
DEFAULT 当字段无数据时用默认值来替代NULL
WITH DEFAULT用字段的系统默认值替换NULL
FORMAT 缺省的显示格式
TITLE 缺省的列标题
NOT NULL不允许空值
CASESPECIFIC字母大小写敏感
UPPERCASE 字母大小写不敏感,内部用大写字母存储
例:
CREATE TABLE emp_data
(employee_numberINTEGER NOT NULL
,last_name CHAR(20)NOT NULL WITH DEFAULT
,street_address VARCHAR (30)TITLE ’’Address’
,city CHAR (15) DEFAULT ’’Boise’
,state CHAR (2)WITH DEFAULT
,birthdate DATEFORMAT’’mm/dd/yyyy’
,salary_amount DEC(10,2)
,sexCHAR (1)UPPERCASE
)
数据存储属性。包括下面各项:
COMPRESS压缩值为NULL的字段存储空间为0
COMPRESS NULL 同上
COMPRESS <constant>压缩值为NULL和指定值的字段存储空间为0
例:
CREATE TABLE emp_data (employee_number INTEGER
,department_number INTEGER COMPRESS
CREATE TABLE bank_account_data (customer_id INTEGER
,account_type CHAR(10) COMPRESS ’’SAVINGS’
Ÿ 字段约束定义。Teradata支持字段级约束,即限制字段的值满足某些条件,如某个字段取值是否唯一、是否为主键或外键等。对字段的约束总结如下:
CONSTRAINT name 约束名称–可选

PRIMARY KEY非空,无重复值
UNIQUE 无重复值
CHECK <布尔条件> 指定合法值的范围
REFERENCES 与其他字段的相关性(外键)
例:
CREATE TABLE employee_badge (emp_id INTEGER NOT NULL
CONSTRAINT primary_1 PRIMARY KEY
,id_badge_number INTEGER
CONSTRAINT unique_1 UNIQUE
,salary INTEGER
CONSTRAINT check_1 CHECK (salary>0)
,job_code INTEGER
CONSTRAINT ref_1 REFERENCES job (job_code)
)
如在上面的例子中,最后一项定义了在EMPLOYEE_BADGE表中的
JOB_CODE必须和JOB表中的JOB_CODE对应,即前一个表中该字段的值必须在第二个表中有对应的项。这实际上是一种所谓的参照完整性。另外要注意的是,具有主键(Primary Key)约束的字段一定要定义为非空(NOT NULL)。
11.² 删除表
可以使用DROP TABLE语句删除表,该语句将删除表中的所有数据和在数据字典中的表结构定义。
例:
删除前面例子中创建的雇员数据表。
DROP TABLE emp_data
删除了表emp_data中的所有数据,并删除了emp_data在数据字典中的定义。如果希望在使用这个表,必须重新创建。
例:
DELETE FROM emp_data
或
DELETE emp_data
删除了表emp_data中的所有数据。表定义仍然存在,可以增加数据。
11.3修改表
当一个表已经创建后,可以使用ALTER TABLE语句来修改其定义。表定义的一些属性是不可修改的(如PI),如果要改变这些属性,常用方法是建立一个满足新属性的新表,然后使用Insert-Select语句把数据从原来的表转移到新表,然后再修 改新表的名称。
ALTER TABLE完整的语法可参见Teradata SQL手册,这里通过几个例子来加以说明。
例:增加或删除字段
ALTER TABLE emp_data
ADD educ_level CHAR(1), ADD insure_type SMALLINT
ALTER TABLE emp_data
DROP educ_level, DROP insure_type
例:修改已有字段的属性
ALTER TABLE emp_data
ADD birthdate FORMAT ’mmmBdd,Byyyy’’
例:对没有FALLBACK的表建立FALLBACK保护
ALTER TABLE emp_data, FALLBACK
例:同时修改表的多个属性
ALTER TABLE emp_data
, NO FALLBACK
DROP insure_type
, ADD educ_level CHAR(1)
例:修改约束定义
增加约束
ALTER TABLE emp_data ADD CONSTRAINT
CHECK (sex = ’F’ OR sex = ’M’)
修改约束:
ALTER TABLE emp_data
MODIFY CONSTRAINT sal_range
CHECK ( salary_amount >0 AND salary_amount <1000000)
注意:表中已有数据如果不符合新的约束条件,约束的增加或修改不能成
功。
删除约束:
ALTER TABLE emp_data
DROP CONSTRAINT sal_range
以上就是关于teradata与华为Gauss的差异全部的内容,如果了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!