配置Paimon Catalog后,您可以通過實時計算Flink版直接訪問阿里云對象存儲OSS中的Paimon表。本文為您介紹如何在實時計算開發控制臺創建、查看與刪除Paimon Catalog,以及管理Paimon數據庫和Paimon表。
背景信息
通過Paimon Catalog可以方便地管理同一個目錄下的所有Paimon表,并與其它阿里云產品連通。目前支持以下4種元數據存儲類型,您可以根據需要選擇相應的元數據存儲類型。元數據存儲類型詳情如下表所示。
元數據存儲類型 | 說明 | 可訪問Paimon Catalog中Paimon表的其它阿里云產品 |
filesystem | 僅將元數據存儲于OSS的指定路徑中。 | 開源大數據平臺EMR中的Spark、Hive和Trino等計算引擎,詳情請參見EMR的Paimon。 |
dlf | 除了將元數據存儲于OSS的指定路徑中,還會將元數據同步到阿里云數據湖構建DLF中。 |
|
maxcompute | 除了將元數據存儲于OSS的指定路徑中,還會在創建、修改、刪除Catalog表時,在指定的MaxCompute項目中同步創建、修改、刪除MaxCompute外表,方便您在MaxCompute中查詢Paimon表的數據。 | 云原生大數據計算服務MaxCompute,詳情請參見Paimon外部表。 |
sync | 合并了Paimon DLF Catalog與Paimon MaxCompute Catalog的功能,方便您通過同一個Catalog連通Hologres、MaxCompute等產品。 說明 Paimon Sync Catalog的元數據以DLF中的元數據為準,請勿在MaxCompute中自行修改或刪除Paimon外表,防止與元數據出現差異。 |
|
注意事項
僅實時計算引擎VVR 8.0.5及以上版本支持創建和配置Paimon Catalog和Paimon表。其中,僅VVR 8.0.7及以上版本支持元數據存儲類型設置為DLF 2.0版本。
OSS用于存儲Paimon表的相關文件,包括數據文件與元數據文件等。請確保已開通阿里云對象存儲OSS服務,且OSS Bucket的存儲類型需要為標準存儲,詳情請參見控制臺快速入門和存儲類型概述。
重要您也可以使用開通實時計算Flink版服務時指定的OSS Bucket,但為了更好地區分數據并防止誤操作,建議您額外創建并使用位于同一地域的OSS Bucket。
創建Paimon Catalog時指定的OSS Bucket和MaxCompute項目必須位于同一地域,且創建Calalog時填寫的AccessKey必須對OSS Bucket、MaxCompute項目和DLF目錄有讀寫權限。
通過SQL方式創建或刪除Catalog、Database和table后,您可以單擊刷新按鈕以更新元數據頁面顯示。
Paimon與VVR版本對應關系詳情如下表所示。
Paimon社區版本
實時計算Flink版引擎版本(VVR )
0.9
8.0.7、8.0.8、8.0.9
0.8
8.0.6
0.7
8.0.5
0.6
8.0.4
0.6
8.0.3
創建Paimon Catalog
四種元數據存儲類型都支持SQL命令方式,而僅filesystem和dlf支持UI方式。下文將為您介紹各個存儲類型所需的配置參數說明。
創建Paimon Filesystem Catalog
UI方式
進入元數據管理頁面。
登錄實時計算控制臺,單擊目標工作空間操作列下的控制臺。
單擊元數據管理。
單擊創建Catalog,選擇Apache Paimon,單擊下一步。
填寫參數配置信息。
SQL方式
在數據查詢文本編輯區域,輸入以下命令。
CREATE CATALOG `my-catalog` WITH (
'type' = 'paimon',
'metastore' = 'filesystem',
'warehouse' = '<warehouse>',
'fs.oss.endpoint' = '<fs.oss.endpoint>',
'fs.oss.accessKeyId' = '<fs.oss.accessKeyId>',
'fs.oss.accessKeySecret' = '<fs.oss.accessKeySecret>'
);
配置項參數說明如下。
通用
配置項
說明
是否必填
備注
my-catalog
Paimon Catalog名稱。
是
請填寫為自定義的英文名。
type
Catalog類型。
是
固定值為paimon。
metastore
元數據存儲類型。
是
參數取值如下:
filesystem:配置為Paimon Filesystem Catalog類型時填寫。
dlf:配置為Paimon DLF Catalog類型時填寫。
maxcompute:配置為Paimon MaxCompute Catalog類型時填寫。
sync:配置為Paimon Sync Catalog類型時填寫。
OSS
配置項
說明
是否必填
備注
warehouse
OSS服務中所指定的數倉目錄。
是
格式為oss://<bucket>/<object>。其中:
bucket:表示您創建的OSS Bucket名稱。
object:表示您存放數據的路徑。
請在OSS管理控制臺上查看您的bucket和object名稱。
fs.oss.endpoint
OSS服務的連接地址。
是
如果Flink與DLF位于同一地域,則使用VPC網絡Endpoint,否則使用公網Endpoint。
當warehouse指定的OSS Bucket與Flink工作空間不在同一地域,或使用其它賬號下的OSS Bucket時需要填寫。
獲取方法請參見OSS地域和訪問域名和創建AccessKey。
fs.oss.accessKeyId
擁有讀寫OSS權限的阿里云賬號或RAM賬號的Accesskey ID。
是
fs.oss.accessKeySecret
擁有讀寫OSS權限的阿里云賬號或RAM賬號的Accesskey secret。
是
創建Paimon DLF Catalog
DLF 2.0版本與DLF 1.0版本創建方式和參數有較大差異,僅VVR 8.0.7及以上版本支持DLF 2.0版本,請您確認使用的DLF版本,根據對應的版本使用相應的方式創建Catalog。
ARM架構暫不支持DLF 2.0版本。
DLF 2.0版本
UI方式
進入元數據管理頁面。
登錄實時計算控制臺,單擊目標工作空間操作列下的控制臺。
單擊元數據管理。
單擊創建Catalog,選擇Apache Paimon,單擊下一步。
填寫參數配置信息。
配置項
說明
是否必填
備注
metastore
元數據存儲類型
是
dlf:配置為Paimon DLF Catalog類型時填寫。
catalog name
數據目錄名稱
是
UI創建元數據時,如果DLF Catalog目錄已經創建,可以從下拉菜單進行選擇。
SQL命令
在數據查詢文本編輯區域,輸入以下命令。
CREATE CATALOG `my-catalog` WITH(
'metastore'='dlf-paimon',
'type'='paimon',
'dlf.endpoint'='<dlf.endpoint>',
'dlf.region'='<dlf.region>',
'dlf.catalog.instance.id'='<dlf.catalog.instance.id>'
);
配置項參數說明如下。
配置項 | 說明 | 是否必填 | 備注 |
my-catalog | Paimon Catalog名稱。 | 是 | 請填寫為自定義的英文名。 |
metastore | 元數據存儲類型。 | 是 | 固定值為dlf-paimon。 |
type | Catalog類型。 | 是 | 固定值為paimon。 |
dlf.endpoint | DLF服務的Endpoint。 | 是 | 跨域(oxs區):dlfnext-share.[regionId].aliyuncs.com。 vpc 區 :dlfnext-vpc.[regionId].aliyuncs.com。 公網: dlfnext.[regionId].aliyuncs.com。 詳情請參見已開通的地域和訪問域名。 例如:dlfnext-vpc.cn-hangzhou.aliyuncs.com。 |
dlf.region | DLF所在區域 | 是 | 詳情請參見已開通的地域和訪問域名。例如:cn-hangzhou 說明 請和dlf.endpoint選擇的地域保持一致。 |
dlf.catalog.instance.id | DLF數據目錄ID。 | 是 | 請在數據湖構建控制臺上查看數據目錄對應的ID,具體操作請參見數據目錄。 |
DLF 1.0版本
UI方式
進入元數據管理頁面。
登錄實時計算控制臺,單擊目標工作空間操作列下的控制臺。
單擊元數據管理。
單擊創建Catalog,選擇Apache Paimon,單擊下一步。
填寫參數配置(所需參數與SQL方式一致)。
SQL命令
在數據查詢文本編輯區域,輸入以下命令。
CREATE CATALOG `my-catalog` WITH (
'type' = 'paimon',
'metastore' = 'dlf',
'warehouse' = '<warehouse>',
'dlf.catalog.id' = '<dlf.catalog.id>',
'dlf.catalog.accessKeyId' = '<dlf.catalog.accessKeyId>',
'dlf.catalog.accessKeySecret' = '<dlf.catalog.accessKeySecret>',
'dlf.catalog.endpoint' = '<dlf.catalog.endpoint>',
'dlf.catalog.region' = '<dlf.catalog.region>',
'fs.oss.endpoint' = '<fs.oss.endpoint>',
'fs.oss.accessKeyId' = '<fs.oss.accessKeyId>',
'fs.oss.accessKeySecret' = '<fs.oss.accessKeySecret>'
);
配置項參數說明如下。
通用
配置項
說明
是否必填
備注
my-catalog
Paimon Catalog名稱。
是
請填寫為自定義的英文名。
type
Catalog類型。
是
固定值為paimon。
metastore
元數據存儲類型。
是
固定值為dlf。
OSS
配置項
說明
是否必填
備注
warehouse
OSS服務中所指定的數倉目錄。
是
格式為oss://<bucket>/<object>。其中:
bucket:表示您創建的OSS Bucket名稱。
object:表示您存放數據的路徑。
請在OSS管理控制臺上查看您的bucket和object名稱。
fs.oss.endpoint
OSS服務的連接地址。
是
如果Flink與DLF位于同一地域,則使用VPC網絡Endpoint,否則使用公網Endpoint。
如果需要將Paimon表存儲在OSS-HDFS中,則fs.oss.endpoint的值為
cn-<region>.oss-dls.aliyuncs.com
,例如cn-hangzhou.oss-dls.aliyuncs.com
。
fs.oss.accessKeyId
擁有讀寫OSS權限的阿里云賬號或RAM賬號的Accesskey ID。
是
獲取方法請參見OSS地域和訪問域名和創建AccessKey。
fs.oss.accessKeySecret
擁有讀寫OSS權限的阿里云賬號或RAM賬號的Accesskey secret。
是
DLF
配置項
說明
是否必填
備注
dlf.catalog.id
DLF數據目錄ID。
是
請在數據湖構建控制臺上查看數據目錄對應的ID,具體操作請參見數據目錄。
dlf.catalog.accessKeyId
訪問DLF服務所需的Access Key ID。
是
獲取方法請參見創建AccessKey。
dlf.catalog.accessKeySecret
訪問DLF服務所需的Access Key Secret。
是
獲取方法請參見創建AccessKey。
dlf.catalog.endpoint
DLF服務的Endpoint。
是
詳情請參見已開通的地域和訪問域名。
說明如果Flink與DLF位于同一地域,則使用VPC網絡Endpoint,否則使用公網Endpoint。
dlf.catalog.region
DLF所在區域。
是
詳情請參見已開通的地域和訪問域名。
說明請和dlf.catalog.endpoint選擇的地域保持一致
創建Paimon MaxCompute Catalog
前提條件
需要在對應的MaxCompute 項目中上傳paimon插件。您可以通過以下任何一種方式上傳:
使用本地客戶端(odpscmd)訪問已創建的MaxCompute項目,并執行
ADD JAR <path_to_paimon_maxcompute_connector.jar>;
代碼,將Paimon插件上傳至MaxCompute項目中。使用DataWorks新建資源將Paimon插件上傳至MaxCompute項目中,詳情請參見創建并使用MaxCompute資源。
SQL命令
CREATE CATALOG `my-catalog` WITH ( 'type' = 'paimon', 'metastore' = 'maxcompute', 'warehouse' = '<warehouse>', 'maxcompute.endpoint' = '<maxcompute.endpoint>', 'maxcompute.project' = '<maxcompute.project>', 'maxcompute.accessid' = '<maxcompute.accessid>', 'maxcompute.accesskey' = '<maxcompute.accesskey>', 'maxcompute.oss.endpoint' = '<maxcompute.oss.endpoint>', 'fs.oss.endpoint' = '<fs.oss.endpoint>', 'fs.oss.accessKeyId' = '<fs.oss.accessKeyId>', 'fs.oss.accessKeySecret' = '<fs.oss.accessKeySecret>' );
說明在Paimon MaxCompute Catalog中創建Paimon表時,會在MaxCompute項目中同步創建Paimon外表。在MaxCompute中查詢Paimon外表時,需要先在MaxCompute執行如下SET語句后,再執行SELECT語句。詳情請參見步驟四:通過MaxCompute讀取Paimon外部表。
SET odps.sql.common.table.planner.ext.hive.bridge = true; SET odps.sql.hive.compatible = true;
配置參數說明
通用
配置項
說明
是否必填
備注
my-catalog
Paimon Catalog名稱。
是
請填寫為自定義的英文名。
type
Catalog類型。
是
固定值為paimon。
metastore
元數據存儲類型。
是
參數取值如下:
filesystem:配置為Paimon Filesystem Catalog類型時填寫。
dlf:配置為Paimon DLF Catalog類型時填寫。
maxcompute:配置為Paimon MaxCompute Catalog類型時填寫。
sync:配置為Paimon Sync Catalog類型時填寫。
OSS
配置項
說明
是否必填
備注
warehouse
OSS服務中所指定的數倉目錄。
是
格式為oss://<bucket>/<object>。其中:
bucket:表示您創建的OSS Bucket名稱。
object:表示您存放數據的路徑。
請在OSS管理控制臺上查看您的bucket和object名稱。
fs.oss.endpoint
OSS服務的連接地址。
是
如果Flink與DLF位于同一地域,則使用VPC網絡Endpoint,否則使用公網Endpoint。
當warehouse指定的OSS Bucket與Flink工作空間不在同一地域,或使用其它賬號下的OSS Bucket時需要填寫。
獲取方法請參見OSS地域和訪問域名和創建AccessKey。
fs.oss.accessKeyId
擁有讀寫OSS權限的阿里云賬號或RAM賬號的Accesskey ID。
是
fs.oss.accessKeySecret
擁有讀寫OSS權限的阿里云賬號或RAM賬號的Accesskey secret。
是
MaxCompute
配置項
說明
是否必填
備注
maxcompute.endpoint
MaxCompute服務的訪問域名。
是
詳情請參見Endpoint。
maxcompute.project
需要操作的MaxCompute項目名稱。
是
暫時不支持開啟了Schema操作的MaxCompute項目。
maxcompute.accessid
擁有MaxCompute權限的阿里云賬號的AccessKey。
是
獲取方法請參見創建AccessKey。
maxcompute.accesskey
擁有MaxCompute權限的阿里云賬號的AccessKey Secret。
是
獲取方法請參見創建AccessKey。
maxcompute.oss.endpoint
從MaxCompute訪問OSS服務的訪問域名。
否
如果不填寫,則默認使用fs.oss.endpoint的值。詳情請參見OSS地域和訪問域名。
說明由于OSS Bucket與MaxCompute項目處于同一地域,此處應填寫內網endpoint。
maxcompute.life-cycle
MaxCompute外表的生命周期。
否
單位是天。
創建Paimon Sync Catalog
CREATE CATALOG `my-catalog` WITH (
'type' = 'paimon',
'metastore' = 'sync',
'source' = 'dlf',
'target' = 'maxcompute',
'warehouse' = '<warehouse>',
'dlf.catalog.id' = '<dlf.catalog.id>',
'dlf.catalog.accessKeyId' = '<dlf.catalog.accessKeyId>',
'dlf.catalog.accessKeySecret' = '<dlf.catalog.accessKeySecret>',
'dlf.catalog.endpoint' = '<dlf.catalog.endpoint>',
'dlf.catalog.region' = '<dlf.catalog.region>',
'maxcompute.endpoint' = '<maxcompute.endpoint>',
'maxcompute.project' = '<maxcompute.project>',
'maxcompute.accessid' = '<maxcompute.accessid>',
'maxcompute.accesskey' = '<maxcompute.accesskey>',
'maxcompute.oss.endpoint' = '<maxcompute.oss.endpoint>',
'fs.oss.endpoint' = '<fs.oss.endpoint>',
'fs.oss.accessKeyId' = '<fs.oss.accessKeyId>',
'fs.oss.accessKeySecret' = '<fs.oss.accessKeySecret>'
);
配置項參數說明如下。
通用
配置項
說明
是否必填
備注
my-catalog
Paimon Catalog名稱。
是
請填寫為自定義的英文名。
type
Catalog類型。
是
固定值為paimon。
metastore
元數據存儲類型。
是
參數取值如下:
filesystem:配置為Paimon Filesystem Catalog類型時填寫。
dlf:配置為Paimon DLF Catalog類型時填寫。
maxcompute:配置為Paimon MaxCompute Catalog類型時填寫。
sync:配置為Paimon Sync Catalog類型時填寫。
snyc獨有
配置項
說明
是否必填
備注
source
元數據同步的來源。
是
此處填寫為dlf。
target
元數據同步的目標。
是
此處填寫為maxcompute。
OSS
配置項
說明
是否必填
備注
warehouse
OSS服務中所指定的數倉目錄。
是
格式為oss://<bucket>/<object>。其中:
bucket:表示您創建的OSS Bucket名稱。
object:表示您存放數據的路徑。
請在OSS管理控制臺上查看您的bucket和object名稱。
fs.oss.endpoint
OSS服務的連接地址。
是
如果Flink與DLF位于同一地域,則使用VPC網絡Endpoint,否則使用公網Endpoint。
當warehouse指定的OSS Bucket與Flink工作空間不在同一地域,或使用其它賬號下的OSS Bucket時需要填寫。
獲取方法請參見OSS地域和訪問域名和創建AccessKey。
fs.oss.accessKeyId
擁有讀寫OSS權限的阿里云賬號或RAM賬號的Accesskey ID。
是
fs.oss.accessKeySecret
擁有讀寫OSS權限的阿里云賬號或RAM賬號的Accesskey secret。
是
DLF
配置項
說明
是否必填
備注
dlf.catalog.id
DLF數據目錄ID。
是
請在數據湖構建控制臺上查看數據目錄對應的ID,具體操作請參見數據目錄。
dlf.catalog.accessKeyId
訪問DLF服務所需的Access Key ID。
是
獲取方法請參見創建AccessKey。
dlf.catalog.accessKeySecret
訪問DLF服務所需的Access Key Secret。
是
獲取方法請參見創建AccessKey。
dlf.catalog.endpoint
DLF服務的Endpoint。
是
詳情請參見已開通的地域和訪問域名。
說明如果Flink與DLF位于同一地域,則使用VPC網絡Endpoint,否則使用公網Endpoint。
dlf.catalog.region
DLF所在區域。
是
詳情請參見已開通的地域和訪問域名。
說明請和dlf.catalog.endpoint選擇的地域保持一致。
maxcompute
配置項
說明
是否必填
備注
maxcompute.endpoint
MaxCompute服務的訪問域名。
是
詳情請參見Endpoint。
maxcompute.project
需要操作的MaxCompute項目名稱。
是
暫時不支持開啟了Schema操作的MaxCompute項目。
maxcompute.accessid
擁有MaxCompute權限的阿里云賬號的AccessKey。
是
獲取方法請參見創建AccessKey。
maxcompute.accesskey
擁有MaxCompute權限的阿里云賬號的AccessKey Secret。
是
獲取方法請參見創建AccessKey。
maxcompute.oss.endpoint
從MaxCompute訪問OSS服務的訪問域名。
否
如果不填寫,則默認使用fs.oss.endpoint的值。詳情請參見OSS地域和訪問域名。
說明由于OSS Bucket與MaxCompute項目處于同一地域,此處應填寫內網endpoint。
maxcompute.life-cycle
MaxCompute外表的生命周期。
否
單位是天。
管理Paimon數據庫
在數據查詢文本編輯區域輸入如下命令,選中代碼后單擊運行。
創建數據庫
創建Paimon Catalog后,Catalog中會自動創建名為
default
的數據庫。--my-catalog需要替換為您創建的Paimon Catalog名稱。 USE CATALOG `my-catalog`; --my_db需要替換為自定義的database英文名稱。 CREATE DATABASE `my_db`;
刪除數據庫
重要無法刪除DLF、MaxCompute和Sync類型Catalog下的default數據庫,允許刪除Filesystem類型Catalog下的default數據庫。
--my-catalog需要替換為您創建的Paimon Catalog名稱。 USE CATALOG `my-catalog`; --my_db需要替換為您想要刪除的數據庫名稱。 DROP DATABASE `my_db`; --只需要刪除內部沒有任何表的數據庫。 DROP DATABASE `my_db` CASCADE; --刪除數據庫且同時刪除數據庫下的所有表。
管理Paimon表
創建表
Paimon Catalog配置完成后,您就可以在作業中引用Paimon Catalog表信息,作為源表、結果表和維表時,無需聲明表的DDL。在SQL命令方式中,您可以直接使用Paimon Catalog表名稱的完整格式${Paimon-catalog-name}.${Paimon-db-name}.${Paimon-table-name}
,也可以用use catalog ${Paimon-catalog-name}
和use ${Paimon-db-name}
語句先聲明Catalog名稱和數據庫名稱,后面的SQL里只寫表名稱${Paimon-table-name}
即可。
通過CREATE TABLE語句創建表
在數據查詢文本編輯區域輸入如下命令后,選中代碼后單擊運行。
在名為my-catalog的Catalog下的my_db的數據庫中,創建一張分區表,其中分區鍵為dt,主鍵為dt、shop_id和user_id,分桶數固定為4。代碼示例如下。
--my-catalog需要替換為您創建的Paimon Catalog名稱。 --my_db需要替換為您想要使用的database名稱。 --my_tbl也可以改為自定義的英文名稱。 CREATE TABLE `my-catalog`.`my_db`.`my_tbl` ( dt STRING, shop_id BIGINT, user_id BIGINT, num_orders INT, total_amount INT, PRIMARY KEY (dt, shop_id, user_id) NOT ENFORCED ) PARTITIONED BY (dt) WITH ( 'bucket' = '4' );
關于Paimon表的更多參數與使用方式,詳情請參見流式數據湖倉Paimon和Paimon主鍵表和Append Only表。
通過CREATE TABLE AS(CTAS)語句或CREATE DATABASE AS(CDAS)語句創建表
CTAS與CDAS語句不僅會自動同步數據,還會同步表結構的變更。通過CTAS與CDAS語句,您可以方便地將MySQL、Kafka等數據源中的表同步至Paimon Catalog中。
由于CTAS與CDAS語句涉及數據的同步,您需要部署并啟動作業,具體操作請參見SQL作業開發和作業啟動。
說明通過CTAS與CDAS語句創建的Paimon表時,暫不支持設置
'bucket' = '-1'
以使用動態分桶的Paimon主鍵表或Paimon Append Only表(非主鍵表)。CTAS與CDAS支持在WITH參數中設置物理表屬性,在創建目標表時,同時在表上設置對應的屬性。當作業啟動時,這些參數將被應用到需要同步的下游表中。具體支持的表屬性參數詳情,請參見流式數據湖倉Paimon。
創建指定表并同步表中的數據
例如,根據
mysql.tpcds.web_sales
表的結構,自動創建`my-catalog`.`my_db`.`web_sales`
Paimon表,并同步表中的數據。另外指定Paimon表的分桶數為4,以及使用input變更數據產生機制。CREATE TABLE IF NOT EXISTS `<catalog name>`.`<db name>`.`<table name>` WITH ( 'bucket' = '4', 'changelog-producer' = 'input' ) AS TABLE mysql.tpcds.web_sales;
創建整個數據庫的表
例如,根據mysql.tpcds數據庫中每張表的結構,自動在
`my-catalog`.`my_db`
中創建對應的Paimon表,并同步表中的數據。另外指定Paimon表使用input變更數據產生機制。CREATE DATABASE IF NOT EXISTS `<catalog name>`.`<db name>` WITH ( 'changelog-producer' = 'input' ) AS DATABASE mysql.tpcds INCLUDING ALL TABLES;
同步列類型變更
通過CTAS/CDAS語句創建的Paimon表不僅支持列的增加,還支持特定的列類型變更。您可以根據需要,選擇是否使用字段類型寬容模式。
默認情況下
通過CTAS/CDAS語句創建的Paimon表的列類型與源表的列類型一致,并支持以下列類型變更:
支持整數類型TINYINT、SMALLINT、INT、BIGINT變更為精度相同或更高的整數類型,其中TINYINT精度最低,BIGINT精度最高。
支持浮點類型FLOAT、DOUBLE變更為精度相同或更高的浮點類型,其中FLOAT精度最低,DOUBLE精度最高。
支持字符串類型CHAR、VARCHAR和STRING變更為精度相同或更高的字符串類型。
使用字段類型寬容模式
在CTAS與CDAS場景中,Paimon Catalog支持在WITH參數中設置
'enableTypeNormalization' = 'true'
后,將使用字段類型寬容模式。在上游發生數據類型修改事件時,只要所修改的類型與原類型的歸一化類型相同,都視作修改成功。目前類型歸一化規則如下:TINYINT、SMALLINT、INT和BIGINT歸一化為BIGINT。
FLOAT和DOUBLE歸一化為DOUBLE。
CHAR、VARCHAR和STRING歸一化為STRING。
其他數據類型不進行歸一化。
例如:
SMALLINT修改為INT,兩者的歸一化類型都是BIGINT,視為修改成功,作業正常運行。
從FLOAT改為BIGINT,兩者的歸一化類型分別為DOUBLE和BIGINT,屬于不兼容的情況,會拋出異常。
Paimon表中存儲的數據類型將統一為歸一化后的類型。例如,MySQL中類型分別為SMALLINT和INT的兩列,在Paimon表中均存儲為BIGINT類型。
修改表結構
在數據查詢文本編輯區域輸入如下命令,選中代碼后單擊運行。
操作 | 代碼示例 |
添加或修改表參數 | 將表的
|
臨時修改表參數 | 您可以通過在表名后添加SQL Hint的方式,在寫入表時臨時修改表參數。臨時修改的表參數僅對當前SQL作業生效。
|
重命名表 | 將表的名稱從my_table修改為my_table_new。
重要 由于對象存儲的重命名操作不具有原子性,因此如果您使用對象存儲OSS保存Paimon表文件,請謹慎進行重命名表操作。推薦您使用OSS-HDFS服務以保證文件操作的原子性。 |
添加新列 |
|
重命名列 | 將my_table表中名稱為c0的列重命名為c1。
|
刪除列 | 將my_table表中c1和c2兩列刪除。
|
刪除分區 | 將my_table表中
|
修改列注釋 | 將my_table表中buy_count列的注釋改為this is buy count。
|
修改列順序 |
|
修改列類型 | 將my_table表中的col_a列類型改為DOUBLE。
Paimon表支持的列類型修改情況請參見下表。下圖中的〇表示支持類型轉換,空單元格代表不支持類型轉換。 |
刪除表
在數據查詢文本編輯區域輸入如下命令,選中代碼后單擊運行。
--my-catalog需要替換為您創建的Paimon Catalog名稱。
--my_db需要替換為您想要使用的database名稱。
--my_tbl需要替換為您創建的Paimon Catalog表名稱。
DROP TABLE `my-catalog`.`my_db`.`my_tbl`;
出現The following statement has been executed successfully!
的提示信息說明Paimon表刪除成功。
查看或刪除Paimon Catalog
在實時計算控制臺,單擊目標工作空間操作列的控制臺。
在元數據管理頁面,查看或刪除Paimon Catalog。
查看:在Catalog列表頁面,查看Catalog名稱和類型。如果您需要查看Catalog下的數據庫和表,請單擊查看。
刪除:在Catalog列表頁面,單擊目標Catalog名稱對應操作列的刪除。
說明刪除Paimon Catalog只會刪除Flink項目空間數據管理中的記錄,不會影響Paimon表的數據文件。刪除Catalog后,只需要重新執行創建Paimon Catalog,即可重新使用Catalog中的Paimon表。
您也可以在數據查詢文本編輯區域輸入
DROP CATALOG <catalog name>;
,選中代碼后單擊運行。
相關文檔
創建Paimon表后,您可以從Paimon表中消費數據或向Paimon表中寫入數據,詳情請參見Paimon表數據寫入和消費。
如果內置的Catalog無法滿足您的業務需求,您可以使用自定義Catalog,詳情請參見管理自定義Catalog。
不同場景下Paimon主鍵表和Append Scalable表的常用優化,詳情請參見Paimon性能優化。