機能サポート: データレイク分析
v2.3以降、StarRocksは外部カタログを介して外部データソースの管理とデータレイク内のデータ分析をサポートしています。
このドキュメントでは、外部カタログの機能サポートと関連する機能のサポートバージョンについて説明します。
共通機能
このセクションでは、External Catalog 機能の共通機能をリストアップしています。これには、ストレージシステム、ファイルリーダー、認証情報、権限、および Data Cache が含まれます。
外部ストレージシステム
| ストレージシステム | サポートバージョン |
|---|---|
| HDFS | v2.3+ |
| AWS S3 | v2.3+ |
| Microsoft Azure Storage | v3.0+ |
| Google GCS | v3.0+ |
| Alibaba Cloud OSS | v3.1+ |
| Huawei Cloud OBS | v3.1+ |
| Tencent Cloud COS | v3.1+ |
| Volcengine TOS | v3.1+ |
| Kingsoft Cloud KS3 | v3.1+ |
| MinIO | v3.1+ |
| Ceph S3 | v3.1+ |
上記のストレージシステムに対するネイティブサポートに加えて、StarRocksは以下のタイプのオブジェクトストレージサービスもサポートしています:
- COS Cloud HDFS、OSS-HDFS、OBS PFSなどのHDFS互換オブジェクトストレージサービス
- 説明: BEの設定項目
fallback_to_hadoop_fs_listにオブジェクトストレージのURIプレフィックスを指定し、クラウドベンダーが提供する.jarパッケージをディレクトリ /lib/hadoop/hdfs/ にアップロードする必要があります。fallback_to_hadoop_fs_listに指定したプレフィックスを使用して外部カタログを作成する必要があります。 - サポートバージョン: v3.1.9+, v3.2.4+
- 説明: BEの設定項目
- 上記にリストされていないS3互換オブジェクトストレージサービス
- 説明: BEの設定項目
s3_compatible_fs_listにオブジェクトストレージのURIプレフィックスを指定する必要があります。s3_compatible_fs_listに指定したプレフィックスを使用して外部カタログを作成する必要があります。 - サポートバージョン: v3.1.9+, v3.2.4+
- 説明: BEの設定項目
圧縮フォーマット
このセクションでは、各ファイルフォーマットがサポートする圧縮フォーマットのみをリストしています。各外部カタログがサポートするファイルフォーマットについては、対応する外部カタログのセクションを参照してください。
| ファイルフォーマット | 圧縮フォーマット |
|---|---|
| Parquet | NO_COMPRESSION, SNAPPY, LZ4, ZSTD, GZIP, LZO (v3.1.5+) |
| ORC | NO_COMPRESSION, ZLIB, SNAPPY, LZO, LZ4, ZSTD |
| Text | NO_COMPRESSION, LZO (v3.1.5+) |
| Avro | NO_COMPRESSION (v3.2.1+), DEFLATE (v3.2.1+), SNAPPY (v3.2.1+), BZIP2 (v3.2.1+) |
| RCFile | NO_COMPRESSION (v3.2.1+), DEFLATE (v3.2.1+), SNAPPY (v3.2.1+), GZIP (v3.2.1+) |
| SequenceFile | NO_COMPRESSION (v3.2.1+), DEFLATE (v3.2.1+), SNAPPY (v3.2.1+), BZIP2 (v3.2.1+), GZIP (v3.2.1+) |
Avro、RCFile、および SequenceFile のファイルフォーマットは、StarRocks 内のネイティブリーダーではなく、Java Native Interface (JNI) によって読み取られます。そのため、これらのファイルフォーマットの読み取りパフォーマンスは、Parquet および ORC よりも劣る可能性があります。
管理、認証情報、およびアクセス制御
| 機能 | 説明 | サポートバージョン |
|---|---|---|
| Information Schema | 外部カタログのための Information Schema をサポートします。 | v3.2+ |
| データレイクアクセス制御 | 外部カタログのために StarRocks のネイティブ RBAC モデルをサポートします。外部カタログ内のデータベース、テーブル、およびビュー(現在、Hive ビューと Iceberge ビューのみ)の権限を、StarRocks のデフォルトカタログ内のものと同様に管理できます。 | v3.0+ |
| Apache Ranger 上の外部サービスの再利用 | アクセス制御のために Apache Ranger 上の外部サービス(Hive Service など)の再利用をサポートします。 | v3.1.9+ |
| Kerberos 認証 | HDFS または Hive Metastore のための Kerberos 認証をサポートします。 | v2.3+ |
Data Cache
| 機能 | 説明 | サポートバージョン |
|---|---|---|
| Data Cache (Block Cache) | v2.5以降、StarRocks は CacheLib を使用して実装された Data Cache 機能(当時は Block Cache と呼ばれていました)をサポートし、その拡張性のための最適化の可能性が限られていました。v3.0以降、StarRocks はキャッシュ実装をリファクタリングし、Data Cache に新機能を追加し、各バージョンでより良いパフォーマンスを実現しました。 | v2.5+ |
| ローカルディスク間のデータ再バランス | データの偏りが10%未満に制御されるようにするためのデータ再バランス戦略をサポートします。 | v3.2+ |
| Block Cache を Data Cache に置き換え | パラメータの変更 BE 設定:
| v3.2+ |
| Data Cache を監視する API の新しいメトリクス | Data Cache を監視する個別の API をサポートし、キャッシュ容量とヒットを含みます。Data Cache メトリクスは、インターフェース http://${BE_HOST}:${BE_HTTP_PORT}/api/datacache/stat を介して表示できます。 | v3.2.3+ |
| Data Cache のためのメモリトラッカー | Data Cache のためのメモリトラッカーをサポートします。メモリ関連のメトリクスは、インターフェース http://${BE_HOST}:${BE_HTTP_PORT}/mem_tracker を介して表示できます。 | v3.1.8+ |
| Data Cache ウォームアップ | CACHE SELECT を実行することで、リモートストレージから必要なデータを事前にキャッシュに積極的に取り込み、最初のクエリがデータを取得するのに時間がかかりすぎないようにすることができます。CACHE SELECT はデータを表 示したり計算を行ったりしません。データを取得するだけです。 | v3.3+ |
Hive Catalog
メタデータ
Hive カタログを通じて Hive データに対してクエリを実行する際、StarRocks はテーブルメタデータをキャッシュし、リモートストレージへの頻繁なアクセスによるコストを削減します。このメカニズムは、非同期リフレッシュと有効期限ポリシーを通じてデータの新鮮さを維持しながら、クエリパフォーマンスを保証します。
キャッシュされたメタデータ
StarRocks はクエリ中に以下のメタデータをキャッシュします:
-
テーブルまたはパーティションレベルのメタデータ
- 内容:
- テーブル情報: データベース、テーブルスキーマ、列名、パーティションキー
- パーティション情報: パーティションリスト、パーティションの場所
- 影響: テーブルの存在を検出する(テーブルが削除または再作成 されたかどうか)
- カタログプロパティ:
enable_metastore_cache: メタストアキャッシュを有効にするかどうかを制御します。デフォルト値:true。metastore_cache_refresh_interval_sec: キャッシュされたメタデータが新鮮と見なされる時間間隔を制御します。デフォルト値:60。単位: 秒。
- 場所: Metastore (HMS または Glue)
- 内容:
-
パーティション名リスト
- 内容: パーティションを見つけて剪定するために使用されるパーティション名のリスト。パーティション名リストは上記のセクションでパーティション情報として収集されていますが、特定の状況下でこの機能を有効または無効にするための別の設定があります。
- 影響: パーティションの存在を検出する(新しいパーティションがあるか、パーティションが削除または再作成されたかどうか)
- カタログプロパティ:
enable_cache_list_names: パーティション名リストキャッシュを有効にするかどうかを制御します。デフォルト値:true。metastore_cache_refresh_interval_sec: キャッシュされたメタデータが新鮮と見なされる時間間隔を制御します。デフォルト値:60。単位: 秒。
- 場所: Metastore (HMS または Glue)
-
ファイルレベルのメタデータ
- 内容: パーティションフォルダー内のファイルへのパス。
- 影響: 既存のパーティションにデータをロードする。
- カタ ログプロパティ:
enable_remote_file_cache: リモートストレージ内のファイルのメタデータキャッシュを有効にするかどうかを制御します。デフォルト値:true。remote_file_cache_refresh_interval_sec: ファイルメタデータが新鮮と見なされる時間間隔を制御します。デフォルト値:60。単位: 秒。remote_file_cache_memory_ratio: ファイルメタデータキャッシュに使用できるメモリの割合を制御します。デフォルト値:0.1(10%)。
- 場所: リモートストレージ (HDFS または S3)
非同期更新ポリシー
以下の FE 構成項目は、非同期メタデータ更新ポリシーを制御します:
| 構成項目 | デフォルト | 説明 |
|---|---|---|
| enable_background_refresh_connector_metadata | true in v3.0false in v2.5 | 定期的なメタデータキャッシュのリフレッシュを有効にするかどうか。これが有効になると、StarRocks はメタストアをポーリングし、頻繁にアクセスされる外部カタログのキャッシュされたメタデータをリフレッシュしてデータの変更を認識します。true は Hive メタデータキャッシュのリフレッシュを有効にし、false はそれを無効にします。この項目は FE 動的パラ メータ です。ADMIN SET FRONTEND CONFIG コマンドを使用して変更できます。 |
| background_refresh_metadata_interval_millis | 600000 (10 分) | 2回の連続したメタデータキャッシュリフレッシュの間隔。単位: ミリ秒。この項目は FE 動的パラメータ です。ADMIN SET FRONTEND CONFIG コマンドを使用して変更できます。 |
| background_refresh_metadata_time_secs_since_last_access_secs | 86400 (24 時間) | メタデータキャッシュリフレッシュタスクの有効期限。アクセスされた外部カタログについて、指定された時間以上アクセスされていない場合、StarRocks はそのキャッシュされたメタデータのリフレッシュを停止します。アクセスされていない外部カタログについては、StarRocks はそのキャッシュされたメタデータをリフレッシュしません。単位: 秒。この項目は FE 動的パラメータ です。ADMIN SET FRONTEND CONFIG コマンドを使用して変更できます。 |