機能サポート: データレイク分析
v2.3以降、StarRocksは外部カタログを介して外部データソースの管理とデータレイク内のデータの分析をサポートしています。
このドキュメントでは、外部カタログの機能サポートと関連する機能のサポートバージョンについて説明します。
共通機能
このセクションでは、外部カタログ機能の共通機能をリストアップします。これには、ストレージシステム、ファイルリーダー、認証情報、権限、および 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 Catalog の Hive Metastore (HMS) および AWS Glue のサポートはほぼ重複していますが、HMS の自動インクリメンタル更新機能は推奨されません。ほとんどの場合、デフォルトの設定が推奨されます。
メタデータの取得パフォーマンスは、ユーザーの HMS または HDFS NameNode のパフォーマンスに大きく依存します。すべての要因を考慮し、テスト結果に基づいて判断してください。
- [デフォルトおよび推奨] 分単位のデータ不整合を許容する最高のパフォーマンス
- 設定: デフォルト設定を使用できます。デフォルトで10分以内に更新されたデータは表示されません。この期間内にクエリに古いデータが返されます。
- 利点: 最高のクエリパフォーマンス。
- 欠点: レイテンシーによるデータ不整合。
- サポートバージョン: v2.5.5+ (v2.5ではデフォルトで無効、v3.0+ではデフォルトで有効)
- 手動リフレッシュなしで新しくロードされたデータ(ファイル)の即時可視性
- 設定: カタログプロパティ
enable_remote_file_cache
をfalse
に設定して、基礎データファイルのメタデータキャッシュを無効にします。 - 利点: ファイル変更の遅延なしの可視性。
- 欠点: ファイルメタデータキャッシュが無効な場合のパフォーマンス低下。各クエリはファイルリストにアクセスする必要があります。
- サポートバージョン: v2.5.5+
- 設定: カタログプロパティ
- 手動リフレッシュなしでパーティション変更の即時可視性
- 設定: カタログプロパティ
enable_cache_list_names
をfalse
に設定して、Hive パーティション名のキャッシュを無効にします。 - 利点: パーティション変更の遅延なしの可視性
- 欠点: パーティション名キャッシュが無効な場合のパフォーマンス低下。各クエリはパーティションリストにアクセスする必要があります。
- サポートバージョン: v2.5.5+
- 設定: カタログプロパティ
データ変更のリアルタイム更新が必要で、HMS のパフォーマンスが最適化されていない場合は、キャッシュを有効にし、自動インクリメンタル更新を無効にし、上流でデータ変更があるたびにスケジューリングシステムを使用してメタデータを手動でリフレッシュ(REFRESH EXTERNAL TABLE を使用)できます。
ストレージシステム
機能 | 説明 | サポートバージョン |
---|---|---|
再帰的サブディレクトリリスト | カタログプロパティ enable_recursive_listing を true に設定して再帰的サブディレクトリリストを有効にします。再帰的リストが有効になると、StarRocks はテーブルとそのパーティション、およびテーブルとそのパーティションの物理的な場所内のサブディレクトリからデータを読み取ります。この機能は、マルチレイヤーのネストされたディレクトリの問題に対処するために設計されています。 | v2.5.9+ v3.0.4+ (v2.5およびv3.0ではデフォルトで無効、v3.1+ではデフォルトで有効) |
ファイルフォーマットとデータ型
ファイルフォーマット
機能 | サポートファイルフォーマット |
---|---|
読み取り | Parquet, ORC, TEXT, Avro, RCFile, SequenceFile |
シンク | Parquet (v3.2+), ORC (v3.3+), TEXT (v3.3+) |
データ型
INTERVAL、BINARY、および UNION 型はサポートされていません。
TEXT形式の Hive テーブルは MAP および STRUCT 型をサポートしていません。
Hive ビュー
StarRocks は v3.1.0 以降、Hive ビューのクエリをサポートしています。
StarRocks が Hive ビューに対してクエリを実行する際、StarRocks および Trino の構文を使用してビューの定義を解析しようとします。StarRocks がビューの定義を解析できない場合、エラーが返されます。StarRocks が Hive または Spark に特有の関数で作成された Hive ビューの解析に失敗する可能性があります。
クエリ統計インターフェース
機能 | サポートバージョン |
---|---|
SHOW CREATE TABLE をサポートして Hive テーブルスキーマを表示 | v3.0+ |
ANALYZE をサポートして統計を収集 | v3.2+ |
ヒストグラムおよび STRUCT サブフィールド統計の収集をサポート | v3.3+ |
データシンキング
機能 | サポートバージョン | 注 |
---|---|---|
CREATE DATABASE | v3.2+ | Hive で作成されたデータベースの場所を指定するかどうかを選択できます。データベースの場所を指定しない場合、そのデータベースの下に作成されたテーブルの場所を指定する必要があります。そうしないと、エラーが返されます。データベースの場所を指定した場合、場所が指定されていないテーブルはデータベースの場所を継承します。データベースとテーブルの両方に場所を指定した場合、最終的にテーブルの場所が有効になります。 |
CREATE TABLE | v3.2+ | パーティションテーブルと非パーティションテーブルの両方に対応。 |
CREATE TABLE AS SELECT | v3.2+ | |
INSERT INTO/OVERWRITE | v3.2+ | パーティションテーブルと非パーティションテーブルの両方に対応。 |
CREATE TABLE LIKE | v3.2.4+ | |
シンクファイルサイズ | v3.3+ | セッション変数 connector_sink_target_max_file_size を使用して、シンクされる各データファイルの最大サイズを定義できます。 |
Iceberg Catalog
メタデータ
Iceberg Catalog は、HMS、Glue、および Tabular をメタストアとしてサポートしています。ほとんどの場合、デフォルトの設定が推奨されます。
セッション変数 enable_iceberg_metadata_cache
のデフォルト値は、異なるシナリオに対応するために変更されています:
- v3.2.1 から v3.2.3 まで、このパラメータは使用されるメタストアサービスに関係なくデフォルトで
true
に設定されています。 - v3.2.4 以降、Iceberg クラスターが AWS Glue をメタストアとして使用する場合、このパラメータはデフォルトで
true
に設定されています。ただし、Iceberg クラスターが Hive メタストアなどの他のメタストアサービスを使用する場合、このパラメータはデフォルトでfalse
に設定されています。 - v3.3.0 以降、このパラメータのデフォルト値は再び
true
に設定されています。これは、StarRocks が新しい Iceberg メタデータフレームワークをサポートしているためです。Iceberg Catalog と Hive Catalog は、同じメタデータポーリングメカニズムと FE 設定項目background_refresh_metadata_interval_millis
を使用します。
機能 | サポートバージョン |
---|---|
分散メタデータプラン(大量のメタデータを扱うシナリオに推奨) | v3.3+ |
マニフェストキャッシュ(少量のメタデータでレイテンシーが重要なシナリオに推奨) | v3.3+ |
ファイルフォーマット
機能 | サポートファイルフォーマット |
---|---|
読み取り | Parquet, ORC |
シンク | Parquet |
- Parquet フォーマットおよび ORC フォーマットの Iceberg V1 テーブルは、位置削除と等価削除をサポートしています。
- ORC フォーマットの Iceberg V2 テーブルは v3.0.0 から位置削除をサポートし、Parquet フォーマットのものは v3.1.0 から位置削除をサポートしています。
- ORC フォーマットの Iceberg V2 テーブルは v3.1.8 および v3.2.3 から等価削除をサポートし、Parquet フォーマットのものは v3.2.5 から等価削除をサポートしています。
Iceberg ビュー
StarRocks は v3.3.2 以降、Iceberg ビューのクエリをサポートしています。現在、StarRocks を通じて作成された Iceberg ビューのみがサポートされています。
StarRocks が Iceberg ビューに対してクエリを実行する際、StarRocks および Trino の構文を使用してビューの定義を解析しようとします。StarRocks がビューの定義を解析できない場合、エラーが返されます。StarRocks が Iceberg または Spark に特有の関数で作成された Iceberg ビューの解析に失敗する可能性があります。
クエリ統計インターフェース
機能 | サポートバージョン |
---|---|
SHOW CREATE TABLE をサポートして Iceberg テーブルスキーマを表示 | v3.0+ |
ANALYZE をサポートして統計を収集 | v3.2+ |
ヒストグラムおよび STRUCT サブフィールド統計の収集をサポート | v3.3+ |
データシンキング
機能 | サポートバージョン | 注 |
---|---|---|
CREATE DATABASE | v3.1+ | Iceberg で作成されたデータベースの場所を指定するかどうかを選択できます。データベースの場所を指定しない場合、そのデータベースの下に作成されたテーブルの場所を指定する必要があります。そうしないと、エラーが返されます。データベースの場所を指定した場合、場所が指定されていないテーブルはデータベースの場所を継承します。データベースとテーブルの両方に場所を指定した場合、最終的にテーブルの場所が有効になります。 |
CREATE TABLE | v3.1+ | パーティションテーブルと非パーティションテーブルの両方に対応。 |
CREATE TABLE AS SELECT | v3.1+ | |
INSERT INTO/OVERWRITE | v3.1+ | パーティションテーブルと非パーティションテーブルの両方に対応。 |
その他のサポート
機能 | サポートバージョン |
---|---|
TIMESTAMP 型パーティションフォーマット yyyy-MM-ddTHH:mm および yyyy-MM-dd HH:mm の読み取りをサポート | v2.5.19+ v3.1.9+ v3.2.3+ |
Hudi Catalog
- StarRocks は Hudi の Parquet フォーマットデータのクエリをサポートし、Parquet ファイルの SNAPPY、LZ4、ZSTD、GZIP、および NO_COMPRESSION 圧縮フォーマットをサポートしています。
- StarRocks は Hudi の Copy On Write (COW) テーブルと Merge On Read (MOR) テーブルを完全にサポートしています。
- StarRocks は v3.0.0 以降、SHOW CREATE TABLE をサポートして Hudi テーブルスキーマを表示します。
Delta Lake Catalog
- StarRocks は Delta Lake の Parquet フォーマットデータのクエリをサポートし、Parquet ファイルの SNAPPY、LZ4、ZSTD、GZIP、および NO_COMPRESSION 圧縮フォーマットをサポートしています。
- StarRocks は Delta Lake の MAP 型および STRUCT 型データのクエリをサポートしていません。
- StarRocks は v3.0.0 以降、SHOW CREATE TABLE をサポートして Delta Lake テーブルスキーマを表示します。
JDBC Catalog
カタログタイプ | サポートバージョン |
---|---|
MySQL | v3.0+ |
PostgreSQL | v3.0+ |
ClickHouse | v3.3+ |
Oracle | v3.2.9+ |
SQL Server | v3.2.9+ |
MySQL
機能 | サポートバージョン |
---|---|
メタデータキャッシュ | v3.3+ |
データ型の対応
MySQL | StarRocks | サポートバージョン |
---|---|---|
BOOLEAN | BOOLEAN | v2.3+ |
BIT | BOOLEAN | v2.3+ |
SIGNED TINYINT | TINYINT | v2.3+ |
UNSIGNED TINYINT | SMALLINT | v3.0.6+ v3.1.2+ |
SIGNED SMALLINT | SMALLINT | v2.3+ |
UNSIGNED SMALLINT | INT | v3.0.6+ v3.1.2+ |
SIGNED INTEGER | INT | v2.3+ |
UNSIGNED INTEGER | BIGINT | v3.0.6+ v3.1.2+ |
SIGNED BIGINT | BIGINT | v2.3+ |
UNSIGNED BIGINT | LARGEINT | v3.0.6+ v3.1.2+ |
FLOAT | FLOAT | v2.3+ |
REAL | FLOAT | v3.0.1+ |
DOUBLE | DOUBLE | v2.3+ |
DECIMAL | DECIMAL32 | v2.3+ |
CHAR | VARCHAR(columnsize) | v2.3+ |
VARCHAR | VARCHAR | v2.3+ |
TEXT | VARCHAR(columnsize) | v3.0.1+ |
DATE | DATE | v2.3+ |
TIME | TIME | v3.1.9+ v3.2.4+ |
TIMESTAMP | DATETIME | v2.3+ |
PostgreSQL
データ型の対応
MySQL | StarRocks | サポートバージョン |
---|---|---|
BIT | BOOLEAN | v2.3+ |
SMALLINT | SMALLINT | v2.3+ |
INTEGER | INT | v2.3+ |
BIGINT | BIGINT | v2.3+ |
REAL | FLOAT | v2.3+ |
DOUBLE | DOUBLE | v2.3+ |
NUMERIC | DECIMAL32 | v2.3+ |
CHAR | VARCHAR(columnsize) | v2.3+ |
VARCHAR | VARCHAR | v2.3+ |
TEXT | VARCHAR(columnsize) | v2.3+ |
DATE | DATE | v2.3+ |
TIMESTAMP | DATETIME | v2.3+ |
ClickHouse
v3.3.0 以降でサポートされています。
Oracle
v3.2.9 以降でサポートされています。
SQL Server
v3.2.9 以降でサポートされています。
Elasticsearch Catalog
Elasticsearch Catalog は v3.1.0 以降でサポートされています。
Paimon Catalog
Paimon Catalog は v3.1.0 以降でサポートされています。
MaxCompute Catalog
MaxCompute Catalog は v3.3.0 以降でサポートされています。
Kudu Catalog
Kudu Catalog は v3.3.0 以降でサポートされています。