JDBC catalog
JDBCカタログ
StarRocksは、v3.0以降でJDBCカタログをサポートしています。
JDBCカタログは、インジェストなしでJDBCを介してアクセスするデータソースからデータをクエリするための外部カタログの一種です。
また、JDBCカタログを基にしたINSERT INTOを使用して、JDBCデータソースから直接データを変換およびロードすることもできます。
JDBCカタログは現在、MySQLおよびPostgreSQLをサポートしています。
前提条件
- StarRocksクラスタのFEおよびBEは 、
driver_url
パラメータで指定されたダウンロードURLからJDBCドライバをダウンロードできる必要があります。 - 各BEノード上の**$BE_HOME/bin/start_be.shファイルのJAVA_HOME**が、JRE環境のパスではなくJDK環境のパスとして正しく設定されている必要があります。たとえば、
export JAVA_HOME = <JDKの絶対パス>
というように設定することができます。この設定をスクリプトの先頭に追加し、BEを再起動して設定が有効になるようにします。
JDBCカタログの作成
構文
CREATE EXTERNAL CATALOG <catalog_name>
[COMMENT <comment>]
PROPERTIES ("key"="value", ...)
パラメータ
catalog_name
JDBCカタログの名前です。命名規則は以下のとおりです。
- 名前には、文字、数字(0-9)、アンダースコア(_)を含めることができます。ただし、先頭は文字で始める必要があります。
- 名前は大文字と小文字を区別し、長さが1023文字を超えることはありません。
comment
JDBCカタログの説明です。このパラメータは省略可能です。
PROPERTIES
JDBCカタログのプロパティです。PROPERTIES
には以下のパラメータが必要です:
パラメータ | 説明 |
---|---|
type | リソースのタイプ。値を |
user | ターゲットデータベースに接続するために使用するユーザー名です。 |
password | ターゲットデータベースに接続するために使用するパスワードです。 |
jdbc_uri | JDBCドライバがターゲットデータベースに接続するために使用するURIです。MySQLの場合、URIは |
driver_url | JDBCドライバJARパッケージのダウンロードURLです。HTTP URLまたはファイルURLがサポートされています。例えば、 注意 JDBCドライバをFEおよびBEノードの任意の同じパスに配置し、 |
driver_class | JDBCドライバのクラス名です。一般的なデータベースエンジンのJDBCドライバクラス名は以下のとおりです:
|
注意
FEはJDBCカタログ作成時にJDBCドライバJARパッケージをダウンロ ードし、BEは最初のクエリ実行時にJDBCドライバJARパッケージをダウンロードします。ダウンロードにかかる時間はネットワークの状況に応じて異なります。
例
以下の例では、jdbc0
とjdbc1
の2つのJDBCカタログを作成しています。
CREATE EXTERNAL CATALOG jdbc0
PROPERTIES
(
"type"="jdbc",
"user"="postgres",
"password"="changeme",
"jdbc_uri"="jdbc:postgresql://127.0.0.1:5432/jdbc_test",
"driver_url"="https://repo1.maven.org/maven2/org/postgresql/postgresql/42.3.3/postgresql-42.3.3.jar",
"driver_class"="org.postgresql.Driver"
);
CREATE EXTERNAL CATALOG jdbc1
PROPERTIES
(
"type"="jdbc",
"user"="root",
"password"="changeme",
"jdbc_uri"="jdbc:mysql://127.0.0.1:3306",
"driver_url"="https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.28/mysql-connector-java-8.0.28.jar",
"driver_class"="com.mysql.cj.jdbc.Driver"
);
JDBCカタログの表示
SHOW CATALOGSを使用して、現在のStarRocksクラスタのすべてのカタログ をクエリできます。
SHOW CATALOGS;
また、SHOW CREATE CATALOGを使用して、外部カタログの作成文をクエリできます。以下の例では、名前がjdbc0
のJDBCカタログの作成文をクエリしています。
SHOW CREATE CATALOG jdbc0;
JDBCカタログの削除
JDBCカタログの削除を使用して、JDBCカタログを削除できます。
以下の例では、名前がjdbc0
のJDBCカタログを削除しています。
DROP Catalog jdbc0;
JDBCカタログ内のテーブルのクエリ
-
SHOW DATABASESを使用して、JDBC互換クラスタのデータベースを表示します。
SHOW DATABASES <catalog_name>;
-
SET CATALOGを使用して、現在のセッションで目的のカタログに切り替えます。
SET CATALOG <catalog_name>;
次に、USEを使用して、現在のセッションでアクティブなデータベースを指定します。
USE <db_name>;
または、USEを使用して、直接目的のカタログ内のアクティブなデータベースを指定することもできます。
USE <catalog_name>.<db_name>;
-
SELECTを使用して、指定したデータベースの目的のテーブルをクエリします。
SELECT * FROM <table_name>;
FAQ
"Malformed database URL, failed to parse the main URL sections"というエラーが表示された場合はどうすればよいですか?
このようなエラーが発生した場合、jdbc_uri
で渡したURIが無効です。渡すURIを確認し、有効であることを確認してください。詳細については、このトピックの"PROPERTIES"セクションのパラメータの説明を参照してください。