日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Spark SQL創(chuàng)建內(nèi)表

更新時間:

AnalyticDB for MySQL支持使用Spark SQL創(chuàng)建C-Store表(即表引擎是XUANWU的表),本文主要介紹使用Spark SQL創(chuàng)建C-Store表的語法、示例以及數(shù)據(jù)類型的映射關(guān)系。

背景信息

AnalyticDB for MySQL Spark SQL創(chuàng)建C-Store表的語法與開源社區(qū)Spark SQL的建表語法存在差異,AnalyticDB for MySQL支持特有的表屬性,詳情請參見創(chuàng)建表AnalyticDB for MySQL Spark SQL的建庫、查詢庫和查詢表等語法與開源社區(qū)Spark一致,詳情請參見開源社區(qū)Spark SQL參考文檔

創(chuàng)建表

語法

CREATE TABLE [ IF NOT EXISTS ] table_identifier
    [ ( column_name column_type [ COMMENT col_comment1 ], ... ) ]
    USING adb
    [ COMMENT table_comment ]
    [ TBLPROPERTIES ( key1=val1, key2=val2, ... ) ]

參數(shù)說明

參數(shù)

說明

table_identifier

表名。支持db_name.table_identifier格式,區(qū)分不同數(shù)據(jù)庫下相同名字的表。

表名的命名規(guī)則,請參見命名約束

column_name

列名。

列名的命名規(guī)則,請參見命名約束

column_type

列的數(shù)據(jù)類型。

Spark SQL支持的數(shù)據(jù)類型,請參見數(shù)據(jù)類型映射

USING adb

指定創(chuàng)建AnalyticDB for MySQL類型的表。

COMMENT

表注釋。

TBLPROPERTIES

定義表屬性。支持的表屬性,請參見表屬性說明

表屬性說明

Spark SQL支持的表屬性如下。

表 1. 表屬性說明

表屬性

說明

是否必須

indexName={indexNameValue1,indexNameValue2,...}

設(shè)置索引名稱,多個索引用英文逗號(,)分隔。示例:'indexName'='index1,index2'

indexType.{indexNameValue}={indexTypeValue}

設(shè)置索引類型。支持如下索引類型:

  • FULLTEXT:全文索引。

  • NORMAL:普通索引。

示例:'indexType.index1'='FULLTEXT'

indexColumn.{indexNameValue}={column_name1,column_name2,...}

設(shè)置被索引的列。

示例:'indexColumn.index1'='c1'

indexAll=[Y|N]

設(shè)置是否對全部列進行索引。

  • Y(默認值):是。

  • N:否。

primaryKey={column_name1 [,column_name2...]}

定義主鍵索引。

主鍵中必須包含分布鍵和分區(qū)鍵,建議將分布鍵和分區(qū)鍵放在組合主鍵的前部。

distributeType=[HASH|BROADCAST]

設(shè)置分布鍵類型,支持HASH或BROADCAST。

  • HASH:在普通表中定義表的分布鍵,按照所選列的HASH值進行分片。

  • BROADCAST:定義復(fù)制表,復(fù)制表會在集群的每個Shard存儲一份數(shù)據(jù),因此建議復(fù)制表的數(shù)據(jù)量不宜太大。

distributeColumns={column_name1[,column_name2,...]}

定義分布鍵(一級分區(qū))。

AnalyticDB for MySQL支持將多個字段作為分布鍵。

AnalyticDB for MySQL不支持修改分布鍵。

partitionType=VALUE

設(shè)置分區(qū)建類型,固定為VALUE。

partitionColumn={column_name}

定義分區(qū)鍵(二級分區(qū))。

partitionCount={partitionCountValue}

二級分區(qū)的生命周期。

當(dāng)您指定了分區(qū)鍵時,必須定義生命周期partitionCount,否則會報錯。

例如,當(dāng)分區(qū)的列類型為日期時間類型時,'partitionCount'='365'表示每個分片(Shard)最多保留的二級分區(qū)個數(shù)為365,即如果數(shù)據(jù)保存天數(shù)為365天,則第366天寫入數(shù)據(jù)后,系統(tǒng)會自動刪除第1天寫入的數(shù)據(jù)。

storagePolicy=[HOT|COLD|MIXED]

指定存儲策略。支持如下取值:

  • HOT(默認值):熱存儲,所有分區(qū)都在SSD。

  • COLD:冷存儲,所有分區(qū)都在OSS。

  • MIXED:混合存儲,部分分區(qū)在SSD,部分分區(qū)在OSS,需要通過hotPartitionCount指定存在SSD上的分區(qū)的數(shù)量。

說明

HOT、COLD、MIXED大小寫兼容。

不同存儲策略下數(shù)據(jù)讀寫性能不同,存儲成本不同。為了降低數(shù)據(jù)存儲成本,同時還要保證查詢性能,您可以選擇將查詢頻度高的數(shù)據(jù)(稱為熱數(shù)據(jù))存儲在SSD介質(zhì);將查詢頻度低的數(shù)據(jù)(稱為冷數(shù)據(jù))存儲在OSS上。

根據(jù)業(yè)務(wù)需求,您還可以按表粒度、表的二級分區(qū)粒度獨立選擇冷、熱存儲介質(zhì)。例如,指定這個表數(shù)據(jù)全部存儲在SSD,或者全部存儲在OSS,或者指定這個表的一部分二級分區(qū)存儲在SSD,另一部分二級分區(qū)存儲在OSS。

hotPartitionCount=N

指定MIXED存儲策略時熱分區(qū)的個數(shù)。表示按分區(qū)鍵的值的大小倒序排列,最大N個分區(qū)為熱分區(qū),其他分區(qū)為冷分區(qū)。

指定MIXED策略時,必須同時指定熱分區(qū)的個數(shù);其他策略禁止指定hotPartitionCount=N

說明

N為正整數(shù)。

tableEngineName=XUANWU

設(shè)置存儲引擎,默認值為XUANWU。

示例

假設(shè)已有名為adb_demo的數(shù)據(jù)庫。建表示例語句如下:

USE adb_demo;
CREATE TABLE `test_data__tbl` (
    `k1` int, 
    `k2` string, 
    `part` int) 
using adb 
    TBLPROPERTIES (
    'distributeType' = 'HASH',
    'distributeColumns' = 'part',
    'partitionType' = 'value',
    'partitionColumn' = 'part',
    'partitionCount' = 4,
    'indexAll' = 'N',
    'storagePolicy' = 'COLD'
  );

數(shù)據(jù)類型映射

Spark SQL列類型

XIHE SQL列類型

BOOLEAN

BOOLEAN

TINYINT

TINYINT

SMALLINT

SMALLINT

INT

INT

INTEGER

INTEGER

BIGINT

BIGINT

FLOAT

FLOAT

DOUBLE

DOUBLE

BINARY

BINARY

DATE

DATE

STRING

  • VARCHAR

  • TIME

  • POINT

  • JSON

  • ARRAY

  • MAP

TIMESTAMP

  • DATETIME

  • TIMESTAMP

相關(guān)文檔

讀寫內(nèi)表數(shù)據(jù)