AnalyticDB for MySQL memungkinkan Anda menggunakan Spark SQL untuk membuat tabel C-Store. Tabel C-Store menggunakan mesin tabel XUANWU. Topik ini menjelaskan sintaks, contoh, dan pemetaan tipe data untuk membuat tabel C-Store menggunakan Spark SQL.
Informasi latar belakang
Sintaks Spark SQL untuk membuat tabel C-Store di AnalyticDB for MySQL berbeda dari sintaks pada Spark SQL open source karena AnalyticDB for MySQL mendukung properti tabel unik. Untuk informasi selengkapnya, lihat Parameter. Namun, AnalyticDB for MySQL menggunakan sintaks Spark SQL yang sama seperti Spark open source untuk membuat database dan mengkueri data. Untuk informasi selengkapnya, lihat dokumentasi referensi Spark SQL open source.
Batasan
Anda hanya dapat menggunakan Spark SQL untuk membuat tabel yang menggunakan mesin tabel XUANWU.
Sintaks
CREATE TABLE [ IF NOT EXISTS ] table_identifier
[ ( column_name column_type [ COMMENT col_comment1 ], ... ) ]
USING adb
[ COMMENT table_comment ]
[ TBLPROPERTIES ( key1=val1, key2=val2, ... ) ]Parameter
Parameter | Wajib | Deskripsi | |
table_identifier | Ya | Nama tabel. Tentukan nama tabel dalam format Untuk informasi selengkapnya tentang konvensi penamaan tabel, lihat Konvensi penamaan. | |
column_name | Ya | Nama kolom. Untuk informasi selengkapnya tentang konvensi penamaan kolom, lihat Konvensi penamaan. | |
column_type | Ya | Tipe data kolom. Untuk informasi selengkapnya tentang tipe data yang didukung Spark SQL, lihat Pemetaan tipe data. | |
USING adb | Ya | Menentukan bahwa tabel AnalyticDB for MySQL akan dibuat. | |
COMMENT | Ya. | Komentar tabel. | |
TBLPROPERTIES | distributeType | Ya | Jenis kunci distribusi. Nilai yang valid:
|
distributeColumns | Ya | Kunci distribusi (partisi hash). Anda dapat menggunakan beberapa bidang sebagai kunci distribusi. Anda tidak dapat mengubah kunci distribusi setelah tabel dibuat. | |
storagePolicy | Ya | Kebijakan penyimpanan. Nilai yang valid:
Catatan HOT, COLD, dan MIXED tidak peka huruf besar/kecil. | |
hotPartitionCount | Ya. | Jumlah partisi panas saat Anda menggunakan kebijakan penyimpanan MIXED. Partisi diurutkan berdasarkan nilai kunci partisi secara menurun. N partisi pertama adalah partisi panas, dan partisi lainnya adalah partisi dingin. Saat Anda memilih kebijakan penyimpanan MIXED, Anda juga harus menentukan jumlah partisi panas. Jika Anda memilih kebijakan penyimpanan selain MIXED, Anda tidak dapat menentukan properti Catatan N adalah bilangan bulat positif. | |
indexName | Tidak | Nama indeks. Pisahkan beberapa indeks dengan koma (,). Contoh: | |
indexType | Tidak | Jenis indeks. Nilai yang valid:
Contoh: | |
indexColumn | Tidak | Kolom yang diindeks. Contoh: | |
indexAll | Tidak | Menentukan apakah semua kolom diindeks.
| |
primaryKey | Tidak | Indeks kunci primer. Kunci primer harus mencakup kunci distribusi dan kunci partisi. Kami menyarankan agar Anda menempatkan kunci distribusi dan kunci partisi di awal kunci primer komposit. | |
partitionType | Tidak | Jenis kunci partisi. Tetapkan ke VALUE. | |
partitionColumn | Tidak | Kunci partisi (subpartisi). | |
partitionCount | Tidak | Siklus hidup subpartisi. Jika Anda menentukan kunci partisi, Anda harus menentukan siklus hidup menggunakan Sebagai contoh, jika kolom kunci partisi bertipe tanggal dan waktu, | |
tableEngineName | Tidak | Mesin penyimpanan. Nilai default adalah XUANWU. | |
Contoh
Buat tabel non-partisi
CREATE TABLE orders (
order_id BIGINT NOT NULL COMMENT 'ID Pesanan',
customer_id INT NOT NULL COMMENT 'ID Pelanggan',
order_status STRING NOT NULL COMMENT 'Status pesanan',
total_price BIGINT NOT NULL COMMENT 'Jumlah pesanan',
order_date TIMESTAMP NOT NULL COMMENT 'Tanggal pesanan'
)
using adb
TBLPROPERTIES (
'distributeType' = 'HASH',
'distributeColumns' = 'order_status',
'storagePolicy' = 'COLD'
); Buat tabel partisi dan atur siklus hidup
CREATE TABLE customer (
customer_id BIGINT NOT NULL COMMENT 'ID Pelanggan',
customer_name STRING NOT NULL COMMENT 'Nama pelanggan',
phone_num BIGINT NOT NULL COMMENT 'Nomor telepon',
city_name STRING NOT NULL COMMENT 'Kota',
sex INT NOT NULL COMMENT 'Jenis kelamin',
id_number STRING NOT NULL COMMENT 'Nomor KTP',
home_address STRING NOT NULL COMMENT 'Alamat rumah',
office_address STRING NOT NULL COMMENT 'Alamat kantor',
age INT NOT NULL COMMENT 'Usia',
login_time TIMESTAMP NOT NULL COMMENT 'Waktu logon'
)
using adb
TBLPROPERTIES (
'distributeType' = 'HASH',
'primaryKey'= 'customer_id,phone_num,city_name',
'distributeColumns' = 'city_name',
'partitionType' = 'value',
'partitionColumn' = 'city_name',
'partitionCount' = 100,
'indexAll' = 'N',
'storagePolicy' = 'COLD'
); Pemetaan tipe data
Tipe kolom Spark SQL | Tipe kolom XIHE SQL |
BOOLEAN | BOOLEAN |
TINYINT | TINYINT |
SMALLINT | SMALLINT |
INT | INT |
INTEGER | INTEGER |
BIGINT | BIGINT |
FLOAT | FLOAT |
DOUBLE | DOUBLE |
BINARY | BINARY |
DATE | DATE |
STRING |
|
TIMESTAMP |
|