全部產品
Search
文件中心

E-MapReduce:JDBC Catalog

更新時間:Oct 09, 2024

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 Catalogjdbc0的建立語句。

    SHOW CREATE CATALOG jdbc0;

刪除JDBC Catalog

您可以通過DROP CATALOG刪除一個JDBC Catalog。

例如,通過如下命令刪除JDBC Catalogjdbc0

DROP Catalog jdbc0;

查看JDBC Catalog中的表資料

  • 您可以通過如下操作查詢JDBC Catalog內的表資料。

    1. 通過SHOW DATABASES查看指定Catalog所屬的叢集中的資料庫。

      SHOW DATABASES FROM <catalog_name>;
    2. 通過SET CATALOG切換當前會話生效的Catalog。

      SET CATALOG <catalog_name>;

      再通過USE指定當前會話生效的資料庫。

      USE <db_name>;

      或者,也可以通過USE直接將會話切換到目標Catalog下的指定資料庫。

      USE <catalog_name>.<db_name>;
    3. 通過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相關的參數說明。