<kbd id="9plqc"><label id="9plqc"></label></kbd>

        <th id="9plqc"></th>
        1. <center id="9plqc"><video id="9plqc"></video></center>
          <sub id="9plqc"><form id="9plqc"><pre id="9plqc"></pre></form></sub>
          <nav id="9plqc"><form id="9plqc"><legend id="9plqc"></legend></form></nav>
          ClickHouse數(shù)據(jù)表遷移實戰(zhàn)之 您所在的位置:網(wǎng)站首頁 屬牛宜住的樓層是哪幾層 ClickHouse數(shù)據(jù)表遷移實戰(zhàn)之

          ClickHouse數(shù)據(jù)表遷移實戰(zhàn)之

          2023-07-06 05:42| 來源: 網(wǎng)絡(luò)整理| 查看: 265

          1 引言

          ClickHouse是一個用于聯(lián)機分析(OLAP)的列式數(shù)據(jù)庫管理系統(tǒng)(DBMS)。我們內(nèi)部很多的報表、數(shù)據(jù)看板都基于它進(jìn)行開發(fā)。今天為大家?guī)韗emote方式的ClickHouse數(shù)據(jù)表遷移的完整過程介紹,如有錯誤,還請各位大佬指正。

          以下sql語句為測試使用,如需使用請根據(jù)實際情況修改。

          2 背景

          我們使用的是京東云提供的分布式數(shù)據(jù)庫 JCHDB,原ClickHouse是兩個部門共用的,因涉及相關(guān)業(yè)務(wù)、管理及費用劃分等問題,需進(jìn)行ClickHouse集群的分離。原ClickHouse面包含表有:業(yè)務(wù)A訂單表與業(yè)務(wù)B大屏數(shù)據(jù)表;拆分后需要將業(yè)務(wù)B的大屏數(shù)據(jù)表遷移到新ClickHouse集群中去。

          3 遷移方式

          經(jīng)查閱,遷移方式有如下幾種:

          1.通過remote函數(shù)進(jìn)行數(shù)據(jù)遷移

          2.通過文件導(dǎo)出導(dǎo)入方式進(jìn)行數(shù)據(jù)遷移

          3.通過CSV文件導(dǎo)出導(dǎo)入

          4.通過Linux pipe管道進(jìn)行流式導(dǎo)出導(dǎo)入

          經(jīng)過與云JCHDB負(fù)責(zé)運維同事溝通及調(diào)研,因數(shù)據(jù)量目前不大,比較適合采用remote方式進(jìn)行遷移,注意remote使用的前提要求即可。如果數(shù)量過大請參考其他遷移方式。

          remote方式使用前,請增加max_partitions_per_insert_block參數(shù)值,避免語句執(zhí)行失敗,示例報如下錯誤:

          報錯: Too many partitions for single INSERT block (more than 100). The limit is controlled by 'max_partitions_per_insert_block' setting 原因: clickhouse 要求每次寫入的數(shù)據(jù)不能跨越特別多的 partitions,具體受參數(shù) max_partitions_per_insert_block 控制,調(diào)整該參數(shù)即可。 4 步驟

          創(chuàng)建新clickhouse集群:請到云管平臺申請,請先預(yù)估好業(yè)務(wù)未來數(shù)據(jù)量,再去填寫申請的容量配置;

          創(chuàng)建數(shù)據(jù)庫:

          CREATE DATABASE IF NOT EXISTS new_database on cluster default;

          注意后面的on cluster default;必須帶上。

          創(chuàng)建表:

          根據(jù)實際表字段、表引擎編寫sql。參考:https://clickhouse.com/docs/zh/sql-reference/statements/create/table

          建立測試表 CREATE TABLE IF NOT EXISTS new_database.test_ck_01_local ON CLUSTER default ( id String COMMENT '隨機主鍵', dt Date COMMENT '分區(qū)字段' ) ENGINE = ReplicatedReplacingMergeTree ('/clickhouse/new_database/tables/{shard}/test_ck_01_local', '{replica}') PARTITION BY toYYYYMMDD (dt) ORDER BY id; CREATE TABLE IF NOT EXISTS new_database.test_ck_01 ON CLUSTER default AS new_database.test_ck_01_local ENGINE=Distributed(default, new_database, test_ck_01_local, rand()); 寫入測試數(shù)據(jù): 在原clickhouse里執(zhí)行寫入數(shù)據(jù)語句: INSERT INTO old_database.test_ck_01 values('1',NOW()); INSERT INTO old_database.test_ck_01 values('2',NOW()); 根據(jù)實際情況多些一些數(shù)據(jù)即可。 從新ClickHouse集群客戶端里執(zhí)行查詢語句:(如不成功說明網(wǎng)絡(luò)不通) SELECT * from remote('老集群地址',old_database.test_ck_01,'user','password') 測試遷移命令: INSERT INTO new_database.test_ck_01 SELECT * from remote('老集群地址',old_database.test_ck_01,'user','password') 正式遷移步驟如下:

          ?提前修改代碼里的clickhouse地址,替換新地址;

          ?通知大數(shù)據(jù)實時負(fù)責(zé)人停止flink等寫入任務(wù);

          ?進(jìn)行數(shù)據(jù)遷移到新ClickHouse集群(參考以上遷移語句);

          ?通知大數(shù)據(jù)實時負(fù)責(zé)人開啟flink等寫入任務(wù);

          ?驗證數(shù)據(jù)是否同步到新ClickHouse集群;

          ?在灰度或預(yù)發(fā)環(huán)境部署或重啟,通過代碼調(diào)用查詢新ClickHouse集群看是否正常。

          遷移語句:(在目標(biāo)clickhouse集群客戶端內(nèi)執(zhí)行) INSERT INTO new_database.待遷移的數(shù)據(jù)表 SELECT * from remote('老集群地址',old_database.老數(shù)據(jù)表,'user','password') 驗證表數(shù)據(jù)量是否一致: SELECT COUNT(1) from 待遷移的數(shù)據(jù)表 final

          注意: 遷移完成后數(shù)據(jù)量可能不一致,請使用 final合并查詢,會把重復(fù)的數(shù)據(jù)條目進(jìn)行合并。

          5 參考

          官方文檔:https://clickhouse.com/docs/zh

          京東云clickhouse學(xué)習(xí):https://docs.jdcloud.com/cn/jchdb/product-overview

          remote使用:https://blog.csdn.net/u010180815/article/details/115070235

          6 總結(jié)

          以上就是使用remote方式進(jìn)行ClickHouse數(shù)據(jù)表遷移的實戰(zhàn)作。通過這種方式,我們可以將數(shù)據(jù)表從一個ClickHouse集群遷移到另一個ClickHouse集群,從而實現(xiàn)數(shù)據(jù)的無縫遷移。

          作者:京東物流 劉鄧忠

          內(nèi)容來源:京東云開發(fā)者社區(qū)



          【本文地址】

          公司簡介

          聯(lián)系我們

          今日新聞

          推薦新聞

          專題文章
            CopyRight 2018-2019 實驗室設(shè)備網(wǎng) 版權(quán)所有
            黄色免费网站在线看,韩国精品在线观看,韩国美女一区二区,99国产热 武川县| 余庆县| 闽侯县| 南宫市| 怀宁县| 浏阳市| 日照市| 怀集县| 青阳县| 清苑县| 珲春市| 中牟县| 德昌县| 永新县| 囊谦县| 哈巴河县| 辽阳市| 福州市| 金山区| 荣成市| 上虞市| 衡南县| 双牌县| 通化县| 林甸县| 安阳市| 蒙阴县| 北安市| 贺州市| 定日县| 体育| 静宁县| 通渭县| 湘潭市| 陈巴尔虎旗| 平泉县| 广灵县| 秭归县| 克东县| 南安市| 合川市| http://444 http://444 http://444 http://444 http://444 http://444