JDBC Catalog は、バージョン 3.0 以降でサポートされている外部カタログの一種です。このトピックでは、JDBC カタログの作成方法と表示方法について説明します。
背景
JDBC カタログを使用すると、次のことができます。
MySQL、PostgreSQL、およびそれらのプロトコルと互換性のあるデータソースのデータを直接クエリします。
JDBC カタログで INSERT INTO 機能を使用して、JDBC データソースからデータを変換およびインポートします。
JDBCカタログの作成
構文
CREATE EXTERNAL CATALOG <catalog_name>
[COMMENT <comment>]
PROPERTIES
(
"key"="value",
...
);パラメーター
catalog_name: JDBC カタログの名前。このパラメーターは必須です。名前は次の要件を満たす必要があります。名前に使用できるのは、英字、数字、およびアンダースコア(_)です。名前は英字で始める必要があります。
名前は1~64文字である必要があります。
comment: オプション。JDBC カタログの説明。PROPERTIES: JDBC カタログのプロパティ。次の表にプロパティを説明します。プロパティ
必須
説明
type
はい
データソースのタイプ。値を
jdbcに設定します。user
はい
データベースへのログオンに使用するユーザー名。
password
はい
データベースへのログオンに使用するパスワード。
jdbc_uri
はい
JDBCドライバーがデータベースに接続するためのURI。
MySQL を使用する場合は、URL を
"jdbc:mysql://ip:port"フォーマットで指定します。PostgreSQL を使用する場合は、URL を
"jdbc:postgresql://ip:port/db_name"フォーマットで指定します。
driver_url
はい
JDBCドライバーのJARパッケージをダウンロードするためのURL。
Serverless StarRocks インスタンスの場合、JDBC ドライバーの JAR パッケージを OSS にアップロードし、JAR パッケージに公開読み取り権限を設定する必要があります。詳細については、「簡易アップロード」および「バケットの ACL を設定する」をご参照ください。次に、driver_url パラメーターを OSS バケットの内部エンドポイントを含む HTTP URL に設定します。例:
http://<YourBucketName>.oss-cn-xxxx-internal.aliyuncs.com/mysql-connector-java-*.jar。driver_class
はい
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 ドライバーのバージョンを指定します。
JDBC カタログの表示
SHOW CATALOGS 文を使用して、現在の StarRocks クラスター内のすべてのカタログをクエリできます。
SHOW CATALOGS;また、SHOW CREATE CATALOG 文を使用して、特定の外部カタログの作成文をクエリすることもできます。たとえば、次の文を使用して、JDBC カタログ
jdbc0の作成文をクエリします。SHOW CREATE CATALOG jdbc0;
JDBC カタログの削除
DROP CATALOG 文を使用して、JDBC カタログを削除できます。
たとえば、次の文を使用して、JDBC カタログ jdbc0 を削除します。
DROP Catalog jdbc0;JDBCカタログを使用したデータのクエリ
次の操作を使用して、JDBC カタログ内のテーブルのデータをクエリできます。
SHOW DATABASES 文を使用して、指定したカタログが属するクラスター内のデータベースを表示します。
SHOW DATABASES FROM <catalog_name>;SET CATALOG 文を使用して、現在のセッションで有効なカタログを切り替えます。
SET CATALOG <catalog_name>;次に、USE 文を使用して、現在のセッションで有効なデータベースを指定します。
USE <db_name>;または、USE 文を使用して、セッションをターゲットカタログ配下の特定のデータベースに直接切り替えることもできます。
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 のパラメーター説明をご参照ください。