統合カタログ
統合カタログは、StarRocks が v3.2 以降で提供する外部カタログの一種で、Apache Hive™、Apache Iceberg、Apache Hudi、Delta Lake、Apache Kudu のデータソースを取り込みなしで統合データソースとして扱います。統合カタログを使用すると、以下のことが可能です:
- Hive、Iceberg、Hudi、Delta Lake、Paimon、Kudu に保存されたデータを、手動でテーブルを作成することなく直接クエリできます。
- INSERT INTO または非同期マテリアライズドビュー(v2.5 以降でサポート)を使用して、Hive、Iceberg、Hudi、Delta Lake、Paimon、Kudu に保存されたデータを処理し、そのデータを StarRocks にロードできます。
- StarRocks 上で操作を行い、Hive および Iceberg のデータベースやテーブルを作成または削除できます。
統合データソースでの SQL ワークロードを成功させるためには、StarRocks クラスターが統合データソースのストレージシステムおよびメタストアにアクセスできる必要があります。StarRocks は以下のストレージシステムおよびメタストアをサポートしています:
-
分散ファイルシステム(HDFS)または AWS S3、Microsoft Azure Storage、Google GCS、その他の S3 互換ストレージシステム(例:MinIO)
-
メタストアとして Hive メタストアまたは AWS Glue
注意
ストレージとして AWS S3 を選択した場合、メタストアとして HMS または AWS Glue を使用できます。他のストレージシステムを選択した場合、メタストアとしては HMS のみを使用できます。
制限事項
1 つの統合カタログは、単一のストレージシステムおよび単一のメタストアサービスとのみ統合できます。したがって、StarRocks と統合したいすべてのデータソースが同じストレージシステムおよびメタストアサービスを使用していることを確認してください。
使用上の注意
-
サポートされているファイル形式とデータ型を理解するために、Hive catalog、Iceberg catalog、Hudi catalog、Delta Lake catalog、Paimon catalog、Kudu catalog の「使用上の注意」セクションを参照してください。
-
特定のテーブル形式に対してのみフォーマット固有の操作がサポートされています。例えば、CREATE TABLE と DROP TABLE は Hive と Iceberg のみでサポートされており、REFRESH EXTERNAL TABLE は Hive と Hudi のみでサポートされています。
統合カタログ内で CREATE TABLE ステートメントを使用してテーブルを作成する場合、
ENGINEパラメータを使用してテーブル形式(Hive または Iceberg)を指定してください。
統合準備
統合カタログを作成する前に、StarRocks クラスターが統合データソースのストレージシステムおよびメタストアと統合できることを確認してください。
AWS IAM
ストレージとして AWS S3 を使用する場合、またはメタストアとして AWS Glue を使用する場合、適切な認証方法を選択し、StarRocks クラスターが関連する AWS クラウドリソースにアクセスできるように必要な準備を行ってください。詳細については、AWS リソースへの認証 - 準備 を参照してください。
HDFS
ストレージとして HDFS を選択した場合、StarRocks クラスターを次のように構成してください:
- (オプション)HDFS クラスターおよび Hive メタストアにアクセスするためのユーザー名を設定します。デフォルトでは、StarRocks は HDFS クラスターおよび Hive メタストアにアクセスするために FE および BE または CN プロセスのユーザー名を使用します。また、各 FE の fe/conf/hadoop_env.sh ファイルの先頭および各 BE または CN の be/conf/hadoop_env.sh ファイルの先頭に
export HADOOP_USER_NAME="<user_name>"を追加してユーザー名を設定することもできます。これらのファイルでユーザー名を設定した後、各 FE および各 BE または CN を再起動してパラメータ設定を有効にしてください。StarRocks クラスターごとに 1 つのユーザー名のみを設定できます。 - データをクエリする際、StarRocks クラスターの FEs および BEs または CNs は HDFS クライアントを使用して HDFS クラスターにアクセスします。ほとんどの場合、その目的を達成するために StarRocks クラスターを構成する必要はなく、StarRocks はデフォルトの構成を使用して HDFS クライアントを起動します。次の状況でのみ StarRocks クラスターを構成する必要があります:
- HDFS クラスターに高可用性 (HA) が有効になっている場合:HDFS クラスターの hdfs-site.xml ファイルを各 FE の $FE_HOME/conf パスおよび各 BE または CN の $BE_HOME/conf パスに追加します。
- HDFS クラスターに View File System (ViewFs) が有効になっている場合:HDFS クラスターの core-site.xml ファイルを各 FE の $FE_HOME/conf パスおよび各 BE または CN の $BE_HOME/conf パスに追加します。
注意
クエリを送信した際に不明なホストを示すエラーが返された場合、HDFS クラスターのノードのホスト名と IP アドレスのマッピングを /etc/hosts パスに追加する必要があります。
Kerberos 認証
HDFS クラスターまたは Hive メタストアに Kerberos 認証が有効になっている場合、StarRocks クラスターを次のように構成してください:
- 各 FE および各 BE または CN で
kinit -kt keytab_path principalコマンドを実行して、Key Distribution Center (KDC) から Ticket Granting Ticket (TGT) を取得します。このコマンドを実行するには、HDFS クラスターおよび Hive メタストアにアクセスする権限が必要です。このコマンドを使用して KDC にアクセスすることは時間に敏感です。したがって、このコマンドを定期的に 実行するために cron を使用する必要があります。 - 各 FE の $FE_HOME/conf/fe.conf ファイルおよび各 BE または CN の $BE_HOME/conf/be.conf ファイルに
JAVA_OPTS="-Djava.security.krb5.conf=/etc/krb5.conf"を追加します。この例では、/etc/krb5.confは krb5.conf ファイルの保存パスです。必要に応じてパスを変更できます。
統合カタログの作成
構文
CREATE EXTERNAL CATALOG <catalog_name>
[COMMENT <comment>]
PROPERTIES
(
"type" = "unified",
MetastoreParams,
StorageCredentialParams,
MetadataUpdateParams,
PaimonCatalogParams,
KuduCatalogParams
)
パラメータ
catalog_name
統合カタログの名前。命名規則は以下の通りです:
- 名前には文字、数字 (0-9)、アンダースコア (_) を含めることができます。文字で始まる必要があります。
- 名前は大文字と小文字を区別し、長さは 1023 文字を超えてはなりません。
comment
統合カタログの説明。このパラメータはオプションです。
type
データソースのタイプ。値を unified に設定します。
MetastoreParams
StarRocks がメタストアと統合する方法に関する一連のパラメータ。