ファイル外部テーブル
ファイル外部テーブルは、特別なタイプの外部テーブルです。データを StarRocks にロードすることなく、外部ストレージシステムにある Parquet および ORC データファイルを直接クエリできます。さらに、ファイル外部テーブルはメタストアに依存しません。現在のバージョンでは、StarRocks は以下の外部ストレージシステムをサポートしています: HDFS、Amazon S3、およびその他の S3 互換ストレージシステム。
この機能は StarRocks v2.5 からサポートされています。
ファイル外部機能は、StarRocks にデータをインポートするために設計されており、通常の操作として外部システムに対してクエリを実行するためのものではありません。クエリを実行し、JOIN などの関数を使用することはできますが、パフォーマンスは良くありません。よりパフォーマンスの良いソリューションは、データを StarRocks にインポートすることです。
制限事項
- ファイル外部テーブルは、 default_catalog 内のデータベースに作成する必要があります。クラスター内で作成されたカタログをクエリするには、 SHOW CATALOGS を実行できます。
- Parquet および ORC データファイルのみがサポートされています。
- ファイル外部テーブルは、ターゲットデータファイル内のデータをクエリするためにのみ使用できます。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 | はい | ファイル外部テーブルの名前。命名規則は以下の通りです:
|
| col_name | はい | ファイル外部テーブルの列名。ファイル外部テーブルの列名はターゲットデータファイルの列名と同じである必要がありますが、大文字小文字は区別されません。ファイル外部テーブルの列の順序は、ターゲットデータファイルの順序と異なる場合があります。 |
| col_type | はい | ファイル外部テーブルの列タイプ。このパラメータは、ターゲットデータファイルの列タイプに基づいて指定する必要があります。詳細については、 列タイプのマッピング を参照してください。 |
| NULL | NOT NULL | いいえ | ファイル外部テーブルの列が NULL を許可するかどうか。
|
| comment | いいえ | ファイル外部テーブルの列のコメント。 |
| ENGINE | はい | エンジンのタイプ。値を file に設定します。 |
| comment | いいえ | ファイル外部テーブルの説明。 |
| PROPERTIES | はい |
|