clickhouse的mysql表引擎使用


官網描述:MySQL引擎用於將遠程的MySQL服務器中的表映射到ClickHouse中,並允許您對表進行insert和select查詢,以方便您在ClickHouse與MySQL之間進行數據交換。
MySQL數據庫引擎會將對其的查詢轉換為MySQL語法並發送到MySQL服務器中,因此您可以執行諸如show tables或show create table之類的操作。

1 應用:
ClickHouse使用mysql引擎可以與mysql數據庫中的數據表建⽴映射,並通過SQL向其發起遠程查詢或插入數據,這是一個異步的過程,相當於ck起了一個線程專門用於同步mysql的數據到ck,主要在於同步mysql配置表的信息,因為配置表常有修改的需求,而ck並不擅長修改記錄,且配置表的記錄往往在幾百條,配置表的同步往往是實時的,目前針對小表數據使用,數據量大的表不建議使用。

2 語法規則:
1)引擎定義:

CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
(
name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1] [TTL expr1],
name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2] [TTL expr2],
...
) ENGINE = MySQL('host:port', 'database', 'table', 'user',
'password'[, replace_query, 'on_duplicate_clause']);


2)參數含義:

host: port表示MySQL的地址和端⼝。
database表示數據庫的名稱。
table表示需要映射的表名稱。
user表示MySQL的⽤戶名。
password表示MySQL的密碼。
replace_query默認為0,對應MySQL的REPLACE INTO語法。如果將它設置為1,則會⽤REPLACE INTO代替INSERT INTO。
on_duplicate_clause默認為0,對應MySQL的ON DUPLICATE KEY語法。如果需要使⽤該設置,則必須將replace_query設置成0。
3 .示例:

--創建一張mysql測試表:
CREATE
TABLE `mysql_engine` ( `id` int(10) NOT NULL AUTO_INCREMENT, `user_name` varchar(255) CHARACTER SET utf8 DEFAULT NULL, `createDate` datetime(6) DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(6), PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='測試表'; --創建clickhouse表,並指定引擎為mysql: create table mysql_engine ( id Int32, name String, createDate DateTime ) engine = MySQL('127.0.0.1:3306', 'demo', 'mysql_engine', 'root', '123456');

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM