全部產品
Search
文件中心

AnalyticDB:寬表引擎

更新時間:Nov 20, 2024

AnalyticDB for MySQL叢集提供寬表引擎,相容了開源列式資料庫ClickHouse的能力。本文為您介紹寬表引擎的特點以及如何開通並使用寬表引擎。

重要

寬表引擎功能處於邀測中,如果您需要開通該功能,請提交工單聯絡支援人員。

什麼是寬表引擎

寬表引擎完全相容開源列式資料庫ClickHouse的能力和文法,能夠處理大量的列式資料,適用於欄位較多的表彙總查詢分析情境。

寬表引擎的特點和架構圖如下:

  • 寬表引擎會使用Interactive型資源群組的常駐計算資源執行SQL任務。

  • 寬表引擎基於ReplicatedMergeTree引擎、雲端硬碟緩衝空間、OSS構建了儲存計算分離的雲原生架構。

  • 無需定義分庫與副本,一鍵式託管寬表引擎。

  • 寬表引擎提供高可用保障與高效能分散式查詢的能力。

若您想瞭解更多開源列式資料庫ClickHouse的資訊,請參見ClickHouse文檔

前提條件

AnalyticDB for MySQL叢集需滿足以下條件:

  • 產品系列為湖倉版

  • 叢集核心版本需為3.2.1.0及以上。

    說明

    查看湖倉版叢集的核心版本,請執行SELECT adb_version();。如需升級核心版本,請聯絡支援人員。

  • 叢集中的Interactive型資源群組未開啟Multi-Cluster功能。

    說明

    您可以在資源群組管理頁面,單擊對應Interactive型資源群組操作列的修改,查看開啟Multi-Cluster的按鈕是否為置灰狀態。若按鈕為置灰狀態,則表示資源群組未開啟Multi-Cluster功能。

  • 叢集中存在計算預留資源大於0 ACU的Interactive型資源群組。

注意事項

  • 寬表引擎開啟後不允許關閉。

  • 開啟寬表引擎的過程中部分節點會重啟,會導致部分SQL執行失敗,建議在業務低峰期執行。

  • 開啟寬表引擎後,不允許建立Multi-Cluster資源群組,且計算預留資源不允許縮容至0 ACU。

  • 不支援備份與恢複寬表引擎的資料。

  • 使用寬表引擎時,需要建立寬表引擎帳號,該帳號與AnalyticDB for MySQL叢集的資料庫帳號為不同的帳號體系,即通過寬表引擎帳號無法訪問AnalyticDB for MySQL叢集的表,反之也相同。

費用說明

  • 開啟寬表引擎後,會預設開通雲端硬碟緩衝空間,產生雲端硬碟緩衝空間費用。費用詳情,請參見湖倉版產品定價

  • 使用寬表引擎,會產生資料存放區費用,費用單價與湖倉版叢集冷資料存放區空間的費用相同。費用詳情,請參見湖倉版產品定價

開啟寬表引擎

  1. 登入雲原生資料倉儲AnalyticDB MySQL控制台,在左上方選擇叢集所在地區。在左側導覽列,單擊集群清單。在集群清單上方,選擇產品系列,然後單擊目的地組群ID。

  2. 在左側導覽列,單擊叢集管理 > 寬表引擎

  3. 配置資訊頁面中,單擊開啟寬表引擎後的按鈕。開啟寬表引擎後,會自動開啟雲端硬碟緩衝空間。

  4. (可選)您可以滑動滑塊或在緩衝空間設定調整框中單擊加號調整雲端硬碟緩衝空間大小。

建立寬表引擎帳號

AnalyticDB for MySQL寬表引擎支援高許可權帳號和普通帳號。兩種帳號的區別及建立方法如下。

高許可權帳號和普通帳號區別

資料庫帳號類型

說明

高許可權帳號

  • 只能通過控制台建立和管理高許可權帳號。

  • 一個叢集中只能建立一個高許可權帳號,高許可權帳號可以管理所有普通帳號和資料庫。

  • 開放了更多許可權,可滿足個人化和精細化的許可權管理需求,例如可按使用者指派不同表的查詢許可權等。

普通帳號

  • 既可以通過SQL語句進行建立,也可以通過控制台操作建立普通帳號。SQL語句建立方式,詳情請參見CREATE USER

  • 一個叢集最多可以建立256個普通帳號。

  • 需要手動為普通帳號授予指定資料庫的許可權,詳情請參見GRANT

  1. 登入雲原生資料倉儲AnalyticDB MySQL控制台,在左上方選擇叢集所在地區。在左側導覽列,單擊集群清單。在集群清單上方,選擇產品系列,然後單擊目的地組群ID。

  2. 在左側導覽列,單擊叢集管理 > 寬表引擎

  3. 帳號管理頁面中,單擊建立帳號

  4. 在彈出的建立帳號面板中,建立高許可權帳號普通帳號

    參數

    說明

    資料庫帳號

    帳號名稱,根據控制台提示輸入符合要求的名稱。

    帳號類型

    請選擇高許可權帳號普通帳號

    新密碼

    帳號的密碼,根據控制台提示輸入符合要求的帳號密碼。

    確認密碼

    再次輸入帳號的密碼。

    描述(可選)

    備忘該帳號的相關資訊,便於後續帳號管理。

串連並使用寬表引擎

湖倉版叢集支援在內網或公網環境下通過HTTP、HTTPS、TCP和MySQL協議串連寬表引擎。下文以MySQL用戶端為例,介紹了串連寬表引擎的具體步驟。

步驟一:串連寬表引擎

通過內網串連寬表引擎

前提條件
  • MySQL用戶端與湖倉版叢集所屬同一VPC。

  • 已建立寬表引擎的帳號。具體操作,請參見建立寬表引擎帳號

  • 已將MySQL用戶端的IP地址添加至湖倉版叢集的白名單中。具體操作,請參見白名單

注意事項
  • 調用AllocateClusterPublicConnection介面開啟寬表引擎的公網串連地址,會導致內網串連閃斷,請確保您的應用有重連機制。

  • AnalyticDB for MySQL叢集切換VPC和交換器後,寬表引擎所綁定的VPC與交換器不會變。

操作步驟
  1. 擷取寬表引擎的內網地址及其連接埠號碼。

    1. 登入雲原生資料倉儲AnalyticDB MySQL控制台,在左上方選擇叢集所在地區。在左側導覽列,單擊集群清單。在集群清單上方,選擇產品系列,然後單擊目的地組群ID。

    2. 在左側導覽列,單擊叢集資訊 > 寬表引擎

    3. 配置資訊頁面中,查看VPC地址VPC MySQL連接埠號碼

  2. 串連寬表引擎,語句如下:

    mysql -hurl -Pport -uuser -ppassword

    參數說明:

    • url:步驟1擷取的寬表引擎VPC地址

    • port:VPC MySQL連接埠號碼固定為9004。

    • user:寬表引擎帳號。

    • password:寬表引擎帳號的密碼。

    樣本:

    mysql -hamv-bp1s7butid48s4mw62****.ads.aliyuncs.com -P9004 -utest -p1Ws****    

通過公網串連寬表引擎

前提條件

已將MySQL用戶端的IP地址添加至湖倉版叢集的白名單中。具體操作,請參見白名單

操作步驟

  1. 擷取寬表引擎的公網地址及其連接埠號碼。

    1. 登入雲原生資料倉儲AnalyticDB MySQL控制台,在左上方選擇叢集所在地區。在左側導覽列,單擊集群清單。在集群清單上方,選擇產品系列,然後單擊目的地組群ID。

    2. 在左側導覽列,單擊叢集資訊 > 寬表引擎

    3. 配置資訊頁面中,單擊申請公網地址

    4. 配置資訊頁面中,查看外網地址公有網路 MySQL連接埠號碼

  2. 串連寬表引擎,語句如下:

    mysql -hurl -Pport -uuser -ppassword

    參數說明:

    • url:步驟1擷取的寬表引擎外網地址

    • port:公有網路MySQL連接埠號碼固定為9004。

    • user:寬表引擎帳號。

    • password:寬表引擎帳號的密碼。

通過SSL鏈路串連寬表引擎

  1. 下載CA認證。

    1. 登入雲原生資料倉儲AnalyticDB MySQL控制台,在左上方選擇叢集所在地區。在左側導覽列,單擊集群清單。在集群清單上方,選擇產品系列,然後單擊目的地組群ID。

    2. 在左側導覽列,單擊叢集資訊 > 寬表引擎

    3. 配置資訊頁面中,查看VPC HTTPS連接埠號碼,並單擊下載CA認證

  2. 串連寬表引擎,語句如下:

    curl --cacert file https://url:port

    參數說明:

    • file:CA認證所在的路徑。

    • url:寬表引擎串連地址。

      • 若您想通過內網串連寬表引擎,請填寫VPC地址

      • 若您想通過公網串連寬表引擎,請先申請公網地址,並填寫外網地址

    • port:VPC HTTPS連接埠號碼固定為8443。

    樣本:

    curl --cacert ca.pem https://amv-bp1s7butid48s4mw62****.ads.aliyuncs.com:8443

步驟二:使用寬表引擎

  1. 建立資料庫adb_demo

    CREATE DATABASE adb_demo ON CLUSTER default [ENGINE = Replicated];
    說明
    • 建立資料庫時,ON CLUSTER default參數為固定參數,不能修改且必須填寫,從而保證自動在每個節點上建立資料庫。

    • 建立資料庫時引擎必須配置為Replicated(預設引擎,可省略),且Replicated後不允許配置zoo_pathshard_namereplica_name參數。

    • 建立資料庫的文法及參數說明,請參見CREATE DATABASE

  2. 建立表test

    CREATE TABLE test (
      id Int,
      name String,
      age Int,
      likes String,
      PRIMARY KEY(id)
    ) 
    ENGINE = ReplicatedMergeTree;
    說明
    • 建立表時表引擎必須填寫為ReplicatedMergeTree,且ReplicatedMergeTree後不允許配置zoo_pathshard_nameH和replica_name參數,系統會自動填入所需參數。

    • 建立表的文法及參數說明,請參見CREATE TABLE

  3. test表中插入資料。

    INSERT INTO test(id,name,age,likes)VALUES('1','Lili','10','足球');
    INSERT INTO test(id,name,age,likes)VALUES('2','Tom','15','籃球');
    INSERT INTO test(id,name,age,likes)VALUES('3','Jack','20','排球');
    INSERT INTO test(id,name,age,likes)VALUES('4','Lucy','25','羽毛球');
  4. 查詢資料。

    SELECT * FROM test;

    返回結果如下:

    +-----------+-----------+-----------+-----------+
    |    id     |   name    |    age    |   likes   |
    +-----------+-----------+-----------+-----------+
    |    1      |   Lili    |    10     |    足球   |
    +-----------+-----------+-----------+-----------+  
    |    2      |   Tom     |    15     |    籃球   |
    +-----------+-----------+-----------+-----------+ 
    |    3      |   Jack    |    20     |    排球   |
    +-----------+-----------+-----------+-----------+ 
    |    4      |   Lucy    |    25     |   羽毛球  |
    +-----------+-----------+-----------+-----------+