Hive catalog
Hive catalog は、外部 catalog の一種であり、以下のことができます。
- Apache Hive™(以下、Hive)に保存されたデータを手動でテーブルを作成することな く直接クエリする。
- INSERT INTO や非同期マテリアライズドビューを使用して、Hive に保存されたデータを処理し、CelerData にデータをロードする。
- CelerData 上で操作を行い、Hive データベースやテーブルを作成または削除したり、CelerData テーブルから Parquet 形式の Hive テーブルにデータをシンクする(この機能は v3.2 以降でサポートされています)。
Hive クラスターで SQL ワークロードを成功させるためには、CelerData クラスターが Hive クラスターのストレージシステムとメタストアにアクセスできる必要があります。CelerData は以下のストレージシステムとメタストアをサポートしています。
-
AWS S3 や Microsoft Azure Storage などのオブジェクトストレージ
-
Hive メタストア(HMS)や AWS Glue などのメタストア
注意
ストレージとして AWS S3 を選択した場合、メタストアとして HMS または AWS Glue を使用できます。他のストレージシステムを選択した場合、メタストアとして HMS のみを使用できます。
使用上の注意
-
CelerData がサポートする Hive のファイル形式は Parquet、ORC、Textfile です。
- Parquet ファイルは、以下の圧縮形式をサポートしています:SNAPPY、LZO、LZ4、ZSTD、GZIP、NO_COMPRESSION。
- ORC ファイルは、以下の圧縮形式をサポートしています:ZLIB、SNAPPY、LZO、LZ4、ZSTD、NO_COMPRESSION。
- Textfile ファイルは、LZO 圧縮形式をサポートしています。
-
CelerData がサポートしていない Hive のデータ型は INTERVAL、BINARY です。また、CelerData は Textfile 形式の Hive テーブルに対して MAP および STRUCT データ型をサポートしていません。
-
Hive catalog は データのクエリ のみに使用できます。Hive catalog を使用して、Hive クラスターにデータを削除、削除、または挿入することはできません。
準備
Hive catalog を作成する前に、CelerData クラスターが Hive クラスターのストレージシステムとメタストアと統合できることを確認してください。
Hive メタストア
Hive クラスターがメタストアとして Hive メタストアを使用している場合、CelerData が Hive メタストアのホストにアクセスできることを確認してください。
注意
通常、CelerData クラスターと Hive メタストアの統合を有効にするために、以下のいずれかのアクションを実行できます。
- CelerData クラスターと Hive メタストアを同じ VPC にデプロイする。
- CelerData クラスターの VPC と Hive メタストアの VPC の間に VPC ピアリング接続を構成する。
次に、Hive メタストアのセキュリティグループの設定を確認し、そのインバウンドルールが CelerData クラスターのセキュリティグループからのインバウンドトラフィックを許可し、そのポート範囲がデフォルトポート 9083 をカバーしていることを確認してください。
AWS
Hive クラスターがストレージとして AWS S3 を使用している場合、またはメタストアとして AWS Glue を使用している場合、適切な認証方法を選択し、IAM ロールやユーザーの作成、指定された IAM ロールやユーザーへの IAM ポリシーの追加など、必要な準備を行い、CelerData クラスターがこれらの AWS リソースにアクセスできるようにします。詳細については、AWS リソースへの認証 > 準備 を参照してください。
Microsoft Azure Storage
Hive クラスターがストレージとして Azure を使用している場合、適切な認証方法を選択し、ロールの割り当ての追加など、必要な準備を行います。詳細については、Azure クラウドストレージへの認証 を参照してください。
Hive catalog の作成
構文
CREATE EXTERNAL CATALOG <catalog_name>
[COMMENT <comment>]
PROPERTIES
(
"type" = "hive",
GeneralParams,
MetastoreParams,
StorageCredentialParams,
MetadataUpdateParams
)
パラメータ
catalog_name
Hive catalog の名前。命名規則は以下の通りです。
- 名前には文字、数字 (0-9)、アンダースコア (_) を含めることができます。名前は文字で始める必要があります。
- 名前は大文字と小文字を区別し、長さは 1023 文字を超えてはなりません。
comment
Hive catalog の説明。このパラメータはオプションです。
type
データソースのタイプ。値を hive
に設定します。
GeneralParams
一般的なパラメータのセット。
GeneralParams
で設定できるパラメータを以下の表に示します。
パラメータ | 必須 | 説明 |
---|---|---|
enable_recursive_listing | いいえ | CelerData がテーブルとそのパーティション、およびテーブルとそのパーティションの物理的な場所内のサブディレクトリからデータを読み取るかどうかを指定します。有効な値:true および false 。デフォルト値:false 。値 true はサブディレクトリを再帰的にリストすることを指定し、値 false はサブディレクトリを無視することを指定します。 |
MetastoreParams
データソースのメタストアと CelerData がどのように統合するかに関するパラメータのセット。
Hive メタストア
データソースのメタストアとして Hive メタストアを選択した場合、MetastoreParams
を以下のように設定します。
"hive.metastore.type" = "hive",
"hive.metastore.uris" = "<hive_metastore_uri>"