ファイル外部テーブル
ファイル外部テーブルは特別なタイプの外部テーブルです。データを StarRocks にロードすることなく、外部ストレージシステム内の Parquet および ORC データファイルを直接クエリすることができます。さらに、ファイル外部テーブルはメタストアに依存しません。現在のバージョンでは、StarRocks は以下の外部ストレージシステムをサポートしています: HDFS、Amazon S3、およびその他の S3 互換ストレージシステム。
この機能は StarRocks v2.5 からサポートされています。
注記
- v3.1 以降、StarRocks は INSERT コマンドと FILES 関数を使用してクラウドストレージ上のファイルから直接データをロードすることをサポートしています。これにより、最初に external catalog やファイル外部テーブルを作成する必要がありません。さらに、FILES() はファイルのテーブルスキーマを自動的に推測でき、データロードのプロセスを大幅に簡素化します。
- ファイル外部テーブル機能は、StarRocks にデータをロードするために設計されており、通常の操作として外部システムに対して効率的なクエリを実行するためのものではありません。よりパフォーマンスの高いソリューションは、データを StarRocks にロードすることです。
制限事項
- ファイル外部テーブルは、default_catalog 内のデータベースに作成する必要があります。クラスター内で作成された catalog をクエリするには、SHOW CATALOGS を実行します。
- Parquet、ORC、Avro、RCFile、および SequenceFile データファイルのみがサポートされています。
- ファイル外部テーブルを使用して、ターゲットデータファイル内のデータをクエリすることのみが可能です。INSERT、DELETE、DROP などのデータ書き込み操作はサポートされていません。
前提条件
ファイル外部テーブルを作成する前に、ターゲットデータファイルが保存されている外部ストレージシステムに StarRocks がアクセスできるように、StarRocks クラスターを構成する必要があります。ファイル外部テーブルに必要な構成は、Hive catalog に必要な構成と同じですが、メタストアを構成する必要はありません。構成の詳細については、Hive catalog - 統合準備 を参照してください。
データベースの作成 (オプション)
StarRocks クラスターに接続した後、既存のデータベースにファイル外部テーブルを作成するか、ファイル外部テーブルを管理するための新しいデータベースを作成できます。クラスター内の既存のデータベースをクエリするには、SHOW DATABASES を実行します。その後、USE <db_name> を実行してターゲットデータベースに切り替えることができます。
データベースを作成するための構文は以下の通りです。
CREATE DATABASE [IF NOT EXISTS] <db_name>
ファイル外部テーブルの作成
ターゲットデータベースにアクセスした後、このデータベースにファイル外部テーブルを作成できます。
構文
CREATE EXTERNAL TABLE <table_name>
(
<col_name> <col_type> [NULL | NOT NULL] [COMMENT "<comment>"]
)
ENGINE=file
COMMENT ["comment"]
PROPERTIES
(
FileLayoutParams,
StorageCredentialParams
)
パラメータ
| パラメータ | 必須 | 説明 |
|---|---|---|
| table_name | Yes | ファイル外部テーブルの名前。命名規則は以下の通りです:
|
| col_name | Yes | ファイル外部テーブルの列名。ファイル外部テーブルの列名はターゲットデータファイルの列名と同じである必要がありますが、大文字と小文字は区別されません。ファイル外部テーブルの列の順序は、ターゲットデータファイルの順序と異なる場合があります。 |
| col_type | Yes | ファイル外部テーブルの列タイプ。このパラメータは、ターゲットデータファイルの列タイプに基づいて指定する必要があります。詳細については、列タイプのマッピング を参照してください。 |
| NULL | NOT NULL | No | ファイル外部テーブルの列が NULL を許可するかどうか。
|
| comment | No | ファイル外部テーブルの列のコメント。 |
| ENGINE | Yes | エンジンのタイプ。値を file に設定します。 |
| comment | No | ファイル外部テーブルの説明。 |
| PROPERTIES | Yes |
|
FileLayoutParams
ターゲットデータファイルにアクセスするための一連のパラメータ。
"path" = "<file_path>",
"format" = "<file_format>"
"enable_recursive_listing" = "{ true | false }"
"enable_wildcards" = "{ true | false }"
| パラメータ | 必須 | 説明 |
|---|---|---|
| path | Yes | データファイルのパス。
|
| format | Yes | データファイルの形式。 有効な値: parquet, orc, avro, rctext または rcbinary, sequence. |
| enable_recursive_listing | No | 現在のパス下のすべてのファイルを再帰的にトラバースするかどうかを指定します。デフォルト値: true。値 true はサブディレクトリを再帰的にリストすることを指定し、値 false はサブディレクトリを無視することを指定します。 |
| enable_wildcards | No | path でワイルドカード (*) を使用することをサポートするかどうか。デフォルト値: false。例: 2024-07-* は 2024-07- プレフィックスを持つすべてのファイルに一致します。このパラメータは v3.1.9 からサポートされています。 |