大數據測試設計方案

一、 數據設計方案

1.1 數據表名

  • 大寫(TABLE)
  • 小寫(table)
  • 大小寫混合(TABle)
  • 帶特殊字符(.table,/table,_table,'table,"table,`table)
  • 關鍵字(datatime,string..)
  • 不同數據庫支持的表名最大長度

1.2 字段名

  • 大寫(COLUMN)
  • 小寫(column)
  • 大小寫混合(COLUmn)
  • 帶特殊字符(.column,/column,_column)
  • 中文數字混合(列名1)
  • 不同數據庫支持的列名最大長度

1.3 空字符

  • 數據表爲空和數據表內某個字段的值爲空

1.4 數據類型

  • 創建對應數據表的所有字段類型

二、 各數據源對應的字段類型

2.1 Oracle數據庫

字段類型 字段說明 長度 示例
NUMBER 變長數據類型 22個字節 ---
FLOAT 浮點數類型 NUMBER(38),雙精度 ---
BINARY_DOUBLE 現有的NUMBER類型的補充,oracle 10g以上的版本才能用 9個字節 12.3400002
BINARY_FLOAT 現有的NUMBER類型的補充oracle 10g以上的版本才能用 5個字節 34.560000000000002
DATE 日期 --- 2021-04-21 14:36:11
TIMESTAMP 日期存儲小數秒 --- 2021-04-21 14:36:11.000000
TIMESTAMP WITH TIME ZONE 日期存儲時區 13字節 2021-04-21 14:36:11.000000000 +08:00
TIMESTAMP WITH LOCAL TIME ZONE 該類型會轉換成數據的時區來保存數據 7-11字節 2021-04-21 14:36:11.000000
INTERVAL YEAR TO MONTH 間隔使用年份和月份 --- +011-00
INTERVAL DAY TO SECOND 使用包括小數秒在內的天,小時,分鐘和秒存儲間隔 --- +012 10:23:01.123457
LONG 超長字符串 最大長度2G ---
BLOB 二進制數據 最大長度4G ---
CLOB 字符數據 最大長度4G ---
NCLOB 根據字符集而定的字符數據 最大長度4G ---
BFILE 存放在數據庫外的二進制數據 最大長度4G ---
CHAR 固定長度字符串 最大長度2000字節 ---
VARCHAR 可變長度字符串 最大長度4000字節 ---

2.2 SQLServer數據庫

字段類型 字段說明 長度 示例
char 非Unincode編碼,長度是固定的 最大長度8000字節 ---
varchar 非Unincode編碼,長度是可變 最大長度8000字節 ---
sql_variant 變長的數據類型,包含兩部分信息:基礎類型和Value,可以存儲所有的SQLServer數據類型的數據。 -- ---
date 日期 --- 2032-03-23
time 時間 --- 09:33:32.0000000
smalldatetime 時間範圍 4個字節 2021-04-08 12:08:00
float 近似數值型 4/8字節,依賴與float(n)的取值 -1.79E+308至1.79E+308
money 記錄金額範圍 8個字節 -92233720368577.5808至92233720368577.5807
numeric 精確數值型 --- 333
decimal 精確數值類型 對DECIMAL(M,D) ,如果M>D,爲M+2否則爲D+2 依賴於M和D的值
tinyint 最小的整數類型 1個字節 0至^8-1
smallint 正負數 2個字節 -215至215-1
int 正負數|4個字節 -231至231-1
bit 常用於布爾類型,0/1代表true/false --- 1/0
image 可變長的二進制字符串 最大2G 文件

2.3 MySQL數據庫

字段類型 字段說明 長度 示例
tinyint 小整數值 1字節 (-128,127)、(0,255)
smallint 大整數值 2字節 (-32768,32767)、(0,65535)
mediumint 大整數值 3字節 (-8388608,8388607)、(0,16777215)
int 大整數值 4字節 (-2147483648,2147483647)、(0,4294967295)
bigint 極大整數值 8字節 (-9,223,372,036,854,775,808,9,223,372,036,854,775,807) 、(0,18446744073709551615)
float 單精度浮點數值 4字節 0,(1.175 494 351 E-38,3.402 823 466 E+38)
double 雙精度浮點數值 8字節 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)
decimal 小數值 對DECIMAL(M,D) ,如果M>D,爲M+2否則爲D+2 依賴於M和D的值
date 日期值 3字節 2009-01-26
time 時間值或持續時間 3字節 838:59:59
datetime 混合日期和時間值 8字節 2009-01-26 00:00:00
timestamp 混合日期和時間值,時間戳 4字節 2009-01-26 00:00:00
year 年份值 1字節 2009
char 定長字符串 0-255字節 ---
varchar 變長字符串 0-65535字節 ---
blob 二進制形式的長文本數據 0-65535字節 ---

2.4 PostgreSQL數據庫

字段類型 字段說明 長度 示例
int2 smallint擴展,小範圍整數 2 字節 -32768 到 +32767
int4 integer擴展,整數的典型選擇 4字節 -2147483648 到 +2147483647
int8 bigint擴展,大範圍整數 8字節 -9223372036854775808 到 +9223372036854775807
numeric 用戶指定的精度,精確 可變長 小數點前 131072 位;小數點後 16383 位
float4 real-可變精度,不精確 4字節 6 位十進制數字精度
float8 double precision可變精度,不精確 8字節 15 位十進制數字精度
money 貨幣金額 8字節 -92233720368547758.08 到 +92233720368547758.07
bool 布爾類型 -- f/t
char 定長,不足補空白 -- --
varchar 變長,有長度限制 --- --
date 只用於日期 4字節 2021-08-03
inet IPv4 或 IPv6 主機和網絡 7 或 19 字節 ::ffff:10.4.3.2
text 變長,無長度限制 -- --
timestamptz 日期和時間(有時區) 8字節 2021-08-03 07:27:08+00
timestamp 日期和時間(無時區) 8字節 2021-08-03 15:27:06
time 只用於一日內時間 8字節 17:28:24
timetz 只用於一日內時間,帶時區 12字節 12:28:34+08
tsvector 無重複值的 lexemes 排序列表 -- '[1,2,3]'
tsquery 存儲用於檢索的詞彙 -- '("fuzzy dice",42,1.99)'
uuid 通用唯一標識符(UUID) 128字節 a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11
point 平面中的點 16字節 (2,6)
line (無窮)直線(未完全實現) 32字節 {1,-1,1}
lseg (有限)線段 32字節 [(1,1),(2,2)]
box 矩形 32字節 (2,2),(1,1)
path 閉合路徑(與多邊形類似) 16+16n字節 ((1,1),(2,2),(3,3),(4,4))
polygon 多邊形(與閉合路徑相似) 40+16n字節 ((1,1),(2,2),(3,3),(4,4))
circle 24字節 <(1,1),5>
json json 數據類型 -- {"f1":1,"f2":"foo"}
jsonb json 數據類型 -- [[1, 5], [99, 100]]
varbit 位串類型,一串 1 和 0 的字符串 -- 00100010110011100111011010110011110

2.5 GreenPlum數據庫

字段類型 字段說明 長度 示例
int2 smallint擴展,小範圍整數 2 字節 -32768 到 +32767
int4 integer擴展,整數的典型選擇 4字節 -2147483648 到 +2147483647
int8 bigint擴展,大範圍整數 8字節 -9223372036854775808 到 +9223372036854775807
numeric 用戶指定的精度,精確 可變長 小數點前 131072 位;小數點後 16383 位
float4 real-可變精度,不精確 4字節 6 位十進制數字精度
float8 double precision可變精度,不精確 8字節 15 位十進制數字精度
money 貨幣金額 8字節 -92233720368547758.08 到 +92233720368547758.07
bool 布爾類型 -- f/t
char 定長,不足補空白 -- --
varchar 變長,有長度限制 --- --
date 只用於日期 4字節 2021-08-03
inet IPv4 或 IPv6 主機和網絡 7 或 19 字節 ::ffff:10.4.3.2
text 變長,無長度限制 -- --
timestamptz 日期和時間(有時區) 8字節 2021-08-03 07:27:08+00
timestamp 日期和時間(無時區) 8字節 2021-08-03 15:27:06
time 只用於一日內時間 8字節 17:28:24
timetz 只用於一日內時間,帶時區 12字節 12:28:34+08
tsvector 無重複值的 lexemes 排序列表 -- '[1,2,3]'
tsquery 存儲用於檢索的詞彙 -- '("fuzzy dice",42,1.99)'
uuid 通用唯一標識符(UUID) 128字節 a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11
point 平面中的點 16字節 (2,6)
line (無窮)直線(未完全實現) 32字節 {1,-1,1}
lseg (有限)線段 32字節 [(1,1),(2,2)]
box 矩形 32字節 (2,2),(1,1)
path 閉合路徑(與多邊形類似) 16+16n字節 ((1,1),(2,2),(3,3),(4,4))
polygon 多邊形(與閉合路徑相似) 40+16n字節 ((1,1),(2,2),(3,3),(4,4))
circle 24字節 <(1,1),5>
json json 數據類型 -- {"f1":1,"f2":"foo"}
jsonb json 數據類型 -- [[1, 5], [99, 100]]
varbit 位串類型,一串 1 和 0 的字符串 -- 00100010110011100111011010110011110

2.6 Impala數據庫

字段類型 字段說明 長度 示例
int 有符號整型 4字節 333
tinyint 有符號整型 1字節 333
smallint 有符號整型 2字節 333
bigint 有符號整型 8字節 333
float 有符號單精度浮點數 4字節 33.93932322
double 有符號雙精度浮點數 8字節 333
decimal 有符號雙精度浮點數 -- 333
timestamp 時間戳 -- 2018-09-21 10:25:12.123
string 字符串 -- xxx
char 長度固定字符串 255 xxx
varchar 長度不定字符串 1-65535 xxx
boolean 布爾類型 -- true/false
binary 字節序列 -- --

2.7 Hive數據庫

字段類型 字段說明 長度 示例
int 有符號整型 4字節 333
tinyint 有符號整型 1字節 333
smallint 有符號整型 2字節 333
bigint 有符號整型 8字節 333
float 有符號單精度浮點數 4字節 33.93932322
double 有符號雙精度浮點數 8字節 333
decimal 有符號雙精度浮點數 -- 333
timestamp 時間戳 -- 2018-09-21 10:25:12.123
date 日期 -- 2013-09-21
string 字符串 -- xxx
char 長度固定字符串 255 xxx
varchar 長度不定字符串 1-65535 xxx
boolean 布爾類型 -- true/false
binary 字節序列 -- --
array<string> 包含同類型元素的數組,索引從0開始 ARRAY<data_type> -- ['a']
map<string,string> 字典 MAP<primitive_type, data_type> -- {'b':null}
struct<t_struct_key:string> 結構體 STRUCT<> -- {"t_struct_key": 'c'}
map<string,double> 字典 MAP<primitive_type, data_type> -- {m['name']='steven':null}
struct<t_struct_int_key:int> 結構體 STRUCT<> -- {"t_struct_int_key":null}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章