本文為您介紹如何將Serverless StarRocks以Iceberg REST對接DLF Catalog。
前提條件
已建立Serverless StarRocks執行個體。如未建立,請參見建立執行個體。
Serverless StarRocks執行個體版本需3.3.20-2.0.0及以上。詳見EMR Serverless StarRocks核心發布記錄。
已建立DLF Catalog。
建立StarRocks帳號與授權
DLF的存取控制是RAM層級的。預設情況下,所有StarRocks使用者均不具備DLF的任何許可權,因此您必須建立一個和RAM使用者同名的內部使用者,並為其授予相應的許可權。
建立RAM使用者。
使用阿里雲帳號或Resource Access Management員登入RAM控制台。
建立一個新的RAM使用者或選擇一個已有RAM使用者。建立RAM使用者,請參見快速入門:建立RAM使用者並授權。
說明該RAM使用者的名稱需符合StarRocks的使用者命名規則,即只包含字母、數字、底線,不能包含虛線、句號。
在DLF中為該RAM使用者授權。
在Serverless StarRocks中建立一個與該RAM同名的使用者。賦予該使用者建立External Catalog以及查看所有Catalog的許可權,並將該使用者與RAM使用者關聯。
在執行個體列表頁面,單擊已建立執行個體操作列的串連執行個體,詳情請參見通過EMR StarRocks Manager串連StarRocks執行個體。
指定使用者名稱為admin或StarRocks超級管理員,串連StarRocks執行個體。
在EMR StarRocks Manager頁面的左側功能表列,選擇資訊安全中心 > 使用者管理,單擊添加使用者。
在彈出的對話方塊中,配置以下資訊,單擊確定。
使用者來源:選擇RAM使用者。
使用者名稱:選擇上一步授權的RAM使用者。
密碼:自訂。
角色:預設public。
添加使用者成功後,為該使用者授權。
在使用者管理頁面,單擊目標使用者操作列的授權。
在許可權管理頁簽,單擊添加許可權。
在添加許可權面板中,配置以下參數,單擊確定。
資源:選擇相應資源。
許可權配置:勾選需要授權的許可權。
說明此處StarRocks Manager中授權資料庫與授權許可權的內容只包含StarRocks內表。要想修改DLF資料目錄的存取權限,只能在資料湖構建控制台修改對應同名RAM使用者的許可權。
(可選)驗證使用者是否關聯成功。
因上一步操作有10~20秒的延遲,您可使用該使用者登入StarRocks Manager,在SQL Editor的查詢列表頁面,單擊
表徵圖,建立SQL查詢。通過SQL Editor執行以下命令,查看目前使用者關聯的Ram User ID,不為空白時說明關聯成功。show property;
建立Catalog
通過Iceberg REST 在DLF Catalog建立的表均為Iceberg表。
使用該RAM使用者登入StarRocks Manager,建立或查看DLF Catalog,即可訪問到DLF外表。
在SQL Editor的查詢列表頁面,單擊
表徵圖,建立SQL查詢。輸入以下SQL,單擊運行,建立External Catalog。
CREATE EXTERNAL CATALOG iceberg_catalog PROPERTIES ( "type" = "iceberg", "uri" = "http://cn-hangzhou-vpc.dlf.aliyuncs.com/iceberg", "iceberg.catalog.type" = "dlf_rest", "warehouse" = "iceberg_test", "rest.signing-region" = "cn-hangzhou" );參數說明如下。
參數
說明
樣本
type
StarRocks的Catalog類型,固定值
iceberg。iceberg
uri
訪問DLF Rest Catalog的URI,詳見Iceberg REST。
http://cn-hangzhou-vpc.dlf.aliyuncs.com/iceberg
iceberg.catalog.type
DLF情境填寫固定值
dlf_rest。dlf_rest
warehouse
DLF Catalog名稱。
iceberg_test
rest.signing-region
DLF服務的Region ID,詳見服務存取點。
cn-hangzhou
運行以下SQL,可查詢Iceberg Catalog下的庫表資訊。
SELECT * FROM catalog_name.database_name.table_name;
