Delta Lake catalog
Delta Lake カタログは、取り込みなしで Delta Lake からデータをクエリすることを可能にする一種の external catalog です。
また、Delta Lake カタログに基づいて INSERT INTO を使用することで、Delta Lake から直接データを変換およびロードすることができます。StarRocks は v2.5 以降の Delta Lake カタログをサポートしています。
Delta Lake クラスターでの SQL ワークロードを成功させるためには、StarRocks クラスターが Delta Lake クラスターのストレージシステムとメタストアにアクセスできる必要があります。StarRocks は以下のストレージシステムとメタストアをサポートしています。
-
分散ファイルシステム (HDFS) または AWS S3、Microsoft Azure Storage、Google GCS、その他の S3 互換ストレージシステム(例: MinIO)などのオブジェクトストレージ
-
Hive メタストアや AWS Glue などのメタストア
ストレージとして AWS S3 を選択した場合、メタストアとして HMS または AWS Glue を使用できます。他のストレージシステムを選択した場合、メタストアとして使用できるのは HMS のみです。
使用上の注意
- StarRocks がサポートする Delta Lake のファイル形式は Parquet です。Parquet ファイルは次の圧縮形式をサポートしています: SNAPPY, LZ4, ZSTD, GZIP, NO_COMPRESSION。
- StarRocks がサポートしていない Delta Lake のデータ型は MAP と STRUCT です。
統合準備
Delta Lake catalog を作成する前に、StarRocks クラスターが Delta Lake クラスターのストレージシステムとメタストアと統合できることを確認してください。
AWS IAM
Delta Lake クラスターが AWS S3 をストレージとして使用している場合、または AWS Glue をメタストアとして使用している場合、適切な 認証方法を選択し、関連する AWS クラウドリソースにアクセスできるように必要な準備を行ってください。
推奨される認証方法は以下の通りです:
- インスタンスプロファイル
- アサインされたロール
- IAM ユーザー
上記の3つの認証方法の中で、インスタンスプロファイルが最も広く使用されています。
詳細については、 Preparation for authentication in AWS IAM を参照してください。
HDFS
HDFS をストレージとして選択した場合、StarRocks クラスターを次のように構成します:
-
(オプション) HDFS クラスターと Hive メタストアにアクセスするために使用されるユーザー名を設定します。デフォルトでは、StarRocks は FE と BE または CN プロセスのユーザー名を使用して HDFS クラスターと Hive メタストアにアクセスします。また、各 FE の fe/conf/hadoop_env.sh ファイルの先頭と、各 BE または CN の be/conf/hadoop_env.sh または cn/conf/hadoop_env.sh ファイルの先頭に
export HADOOP_USER_NAME="<user_name>"を追加することでユーザー名を設定することもできます。これらのファイルにユーザー名を設定した後、各 FE と各 BE または CN を再起動して、パラメータ設定を有効にします。StarRocks クラスターごとに1つのユーザー名しか設定できません。 -
Delta Lake データをクエリ する際、StarRocks クラスターの FEs と BEs または CNs は HDFS クライアントを使用して HDFS クラスターにアクセスします。ほとんどの場合、その目的を達成するために StarRocks クラスターを構成する必要はなく、StarRocks はデフォルトの構成を使用して HDFS クライアントを起動します。次の状況でのみ StarRocks クラスターを構成する必要があります:
- 高可用性 (HA) が HDFS クラスターで有効になっている場合: HDFS クラスターの hdfs-site.xml ファイルを各 FE の $FE_HOME/conf パスと、各 BE または CN の $BE_HOME/conf または $CN_HOME/conf パスに追加します。
- View File System (ViewFs) が HDFS クラスターで有効になっている場合: HDFS クラスターの core-site.xml ファイルを各 FE の $FE_HOME/conf パスと、各 BE または CN の $BE_HOME/conf または $CN_HOME/conf パスに追加します。
注記クエリを送信した際に不明なホストを示すエラーが返された 場合、HDFS クラスターのノードのホスト名と IP アドレスのマッピングを /etc/hosts パスに追加する必要があります。
Kerberos 認証
Kerberos 認証が HDFS クラスターまたは Hive メタストアで有効になっている場合、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 または $CN_HOME/conf/cn.conf ファイルに
JAVA_OPTS="-Djava.security.krb5.conf=/etc/krb5.conf"を追加します。この例では、/etc/krb5.confは krb5.conf ファイルの保存パスです。必要に応じてパスを変更できます。