一、背景
平常開發會員一次性的需求,列入將一個大文件導入到CK中進行數據分析,以下記錄一下CSV導入到CK的過程:
二、創建表結構
CREATE TABLE default.test_table (
`index` String,
`uuid` String,
`variables` String,
`title` String,
`title_explain` String,
`title_meaning` String
) ENGINE = MergeTree() PARTITION BY sipHash64(uuid)%20 ORDER BY sipHash64(uuid)%20 SETTINGS index_granularity = 8192
注:由於此表沒有年月日,所以按照sipHash64(uuid)%20分成20個分區,若這里直接用uuid分區會產生太多的分區,有可能導致分區過多報錯,我剛開始沒注意的時候,就是因為產生了太多的分區導入失敗,報錯信息為:
Too many partitions for single INSERT block (more than 100),所以需要注意一下。
三.導入數據
方式一:登錄服務器使用客戶端
clickhouse-client -h xxx.x.x.x --database="default" --query="select * from default.test_table FORMAT CSV" < test.csv
方式二:直接連接數據庫,例如用dbserver客戶到,創建表之后,直接導入數據即可