JDBC Catalog
JDBC Catalog是一種External Catalog,從3.0版本開始支持。本文為您介紹如何創(chuàng)建和查看JDBC Catalog。
背景信息
通過JDBC Catalog,您可以:
直接查詢MySQL、PostgreSQL及其協(xié)議兼容的數(shù)據(jù)源中的數(shù)據(jù)。
基于JDBC Catalog,結(jié)合INSERT INTO能力對JDBC數(shù)據(jù)源的數(shù)據(jù)實現(xiàn)轉(zhuǎn)換和導(dǎo)入。
創(chuàng)建JDBC Catalog
語法
CREATE EXTERNAL CATALOG <catalog_name>
[COMMENT <comment>]
PROPERTIES
(
"key"="value",
...
);
參數(shù)說明
catalog_name
:JDBC Catalog的名稱,必選參數(shù)。命名要求如下:必須由字母(a~z或A~Z)、數(shù)字(0~9)或下劃線(_)組成,并且只能以字母開頭。
總長度不能超過64個字符。
comment
:可選,JDBC Catalog 的描述。PROPERTIES
: JDBC Catalog的屬性。參數(shù)配置如下表所示。屬性
是否必選
說明
type
是
數(shù)據(jù)源類型,固定取值為
jdbc
。user
是
目標(biāo)數(shù)據(jù)庫登錄用戶名。
password
是
目標(biāo)數(shù)據(jù)庫用戶登錄密碼。
jdbc_uri
是
JDBC驅(qū)動程序連接目標(biāo)數(shù)據(jù)庫的URI。
如果使用MySQL,格式為:
"jdbc:mysql://ip:port"
。如果使用PostgreSQL,格式為:
"jdbc:postgresql://ip:port/db_name"
。
driver_url
是
用于下載JDBC驅(qū)動程序JAR包的URL。
對于Serverless StarRocks實例,您需要將JDBC驅(qū)動程序JAR包上傳到OSS上,并開放JAR包的公共讀權(quán)限。詳情請參見簡單上傳、設(shè)置Bucket ACL。然后將driver_url配置成包含對應(yīng)內(nèi)網(wǎng)Endpoint的HTTP URL,例如:
http://<YourBucketName>.oss-cn-xxxx-internal.aliyuncs.com/mysql-connector-java-*.jar
。driver_class
是
JDBC驅(qū)動程序的類名稱。以下是常見數(shù)據(jù)庫引擎支持的JDBC驅(qū)動程序類名稱:
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
,請根據(jù)MySQL Driver的實際版本填寫。
查看JDBC Catalog?
您可以通過SHOW CATALOGS查詢當(dāng)前所在StarRocks集群里所有Catalog。
SHOW CATALOGS;
您也可以通過SHOW CREATE CATALOG查詢某個External Catalog的創(chuàng)建語句。例如,通過如下命令查詢JDBC Catalog
jdbc0
的創(chuàng)建語句。SHOW CREATE CATALOG jdbc0;
刪除JDBC Catalog?
您可以通過DROP CATALOG刪除一個JDBC Catalog。
例如,通過如下命令刪除JDBC Catalogjdbc0
。
DROP Catalog jdbc0;
查看JDBC Catalog中的表數(shù)據(jù)
您可以通過如下操作查詢JDBC Catalog內(nèi)的表數(shù)據(jù)。
通過SHOW DATABASES查看指定Catalog所屬的集群中的數(shù)據(jù)庫。
SHOW DATABASES FROM <catalog_name>;
通過SET CATALOG切換當(dāng)前會話生效的Catalog。
SET CATALOG <catalog_name>;
再通過USE指定當(dāng)前會話生效的數(shù)據(jù)庫。
USE <db_name>;
或者,也可以通過USE直接將會話切換到目標(biāo)Catalog下的指定數(shù)據(jù)庫。
USE <catalog_name>.<db_name>;
通過SELECT查詢目標(biāo)數(shù)據(jù)庫中的目標(biāo)表。
SELECT * FROM <table_name>;
您也可以通過SELECT查詢目標(biāo)數(shù)據(jù)庫中的目標(biāo)表。
SELECT * FROM <catalog_name>.<database_name>.<table_name>;
常見問題?
Q:系統(tǒng)返回“Malformed database URL, failed to parse the main URL sections”報錯應(yīng)該如何處理?
A:該報錯通常是由于jdbc_uri
中傳入的URI有誤而引起的。請檢查并確保傳入的URI準(zhǔn)確無誤。參見本文PROPERTIES
相關(guān)的參數(shù)說明。