JDBC Catalog是一種External Catalog,從3.0版本開始支援。本文為您介紹如何建立和查看JDBC Catalog。
背景資訊
通過JDBC Catalog,您可以:
直接查詢MySQL、PostgreSQL及其協議相容的資料來源中的資料。
基於JDBC Catalog,結合INSERT INTO能力對JDBC資料來源的資料實現轉換和匯入。
建立JDBC Catalog
文法
CREATE EXTERNAL CATALOG <catalog_name>
[COMMENT <comment>]
PROPERTIES
(
"key"="value",
...
);參數說明
catalog_name:JDBC Catalog的名稱,必選參數。命名要求如下:必須由字母(a~z或A~Z)、數字(0~9)或底線(_)組成,並且只能以字母開頭。
總長度不能超過64個字元。
comment:可選,JDBC Catalog 的描述。PROPERTIES: JDBC Catalog的屬性。參數配置如下表所示。屬性
是否必選
說明
type
是
資料來源類型,固定取值為
jdbc。user
是
目標資料庫登入使用者名稱。
password
是
目標資料庫使用者登入密碼。
jdbc_uri
是
JDBC驅動程式串連目標資料庫的URI。
如果使用MySQL,格式為:
"jdbc:mysql://ip:port"。如果使用PostgreSQL,格式為:
"jdbc:postgresql://ip:port/db_name"。
driver_url
是
用於下載JDBC驅動程式JAR包的URL。
對於Serverless StarRocks執行個體,您需要將JDBC驅動程式JAR包上傳到OSS上,並開放JAR包的公用讀取許可權。詳情請參見簡單上傳、設定Bucket ACL。然後將driver_url配置成包含對應內網Endpoint的HTTP URL,例如:
http://<YourBucketName>.oss-cn-xxxx-internal.aliyuncs.com/mysql-connector-java-*.jar。driver_class
是
JDBC驅動程式的類名稱。以下是常見資料庫引擎支援的JDBC驅動程式類名稱:
MySQL:
MySQL 5.x及以前版本,請使用
com.mysql.jdbc.Driver。MySQL 6.x及之後的版本,請使用
com.mysql.cj.jdbc.Driver。
PostgreSQL:請使用
org.postgresql.Driver。
樣本
CREATE EXTERNAL CATALOG mysql_catalog
PROPERTIES
(
"type"="jdbc",
"user"="root",
"password"="xxxxx",
"jdbc_uri"="jdbc:mysql://127.0.0.1:3306",
"driver_url"="http://<YourBucketName>.oss-cn-xxxx-internal.aliyuncs.com/mysql-connector-java-*.jar",
"driver_class"="com.mysql.cj.jdbc.Driver"
);樣本中的mysql-connector-java-*.jar,請根據MySQL Driver的實際版本填寫。
查看JDBC Catalog
您可以通過SHOW CATALOGS查詢當前所在StarRocks叢集裡所有Catalog。
SHOW CATALOGS;您也可以通過SHOW CREATE CATALOG查詢某個External Catalog的建立語句。例如,通過如下命令查詢JDBC Catalog
jdbc0的建立語句。SHOW CREATE CATALOG jdbc0;
刪除JDBC Catalog
您可以通過DROP CATALOG刪除一個JDBC Catalog。
例如,通過如下命令刪除JDBC Catalogjdbc0。
DROP Catalog jdbc0;查看JDBC Catalog中的表資料
您可以通過如下操作查詢JDBC Catalog內的表資料。
通過SHOW DATABASES查看指定Catalog所屬的叢集中的資料庫。
SHOW DATABASES FROM <catalog_name>;通過SET CATALOG切換當前會話生效的Catalog。
SET CATALOG <catalog_name>;再通過USE指定當前會話生效的資料庫。
USE <db_name>;或者,也可以通過USE直接將會話切換到目標Catalog下的指定資料庫。
USE <catalog_name>.<db_name>;通過SELECT查詢目標資料庫中的目標表。
SELECT * FROM <table_name>;
您也可以通過SELECT查詢目標資料庫中的目標表。
SELECT * FROM <catalog_name>.<database_name>.<table_name>;
常見問題
Q:系統返回“Malformed database URL, failed to parse the main URL sections”報錯應該如何處理?
A:該報錯通常是由於jdbc_uri中傳入的URI有誤而引起的。請檢查並確保傳入的URI準確無誤。參見本文PROPERTIES相關的參數說明。