Parquet、Delta、Iceberg 形式のオブジェクトストレージデータ¶
注釈
この機能は、 エンタープライズプラス サブスクリプションバンドルでのみ使用可能です。所有するバンドルを見つけるには、Design Studio または Administration Tool の [About] ダイアログを開きます。この詳細については、「 Denodo Platform - サブスクリプションバンドル 」のセクションを参照してください。
Denodo には、オブジェクトストレージにデータが含まれる環境でのパフォーマンスを向上する 組み込み超並列処理 (MPP) 機能が含まれています。そのために、Denodo に Presto のカスタマイズされたバージョンが組み込まれました。これはオープンソースの並列 SQL クエリエンジンであり、データレイクコンテンツに対するアクセスに優れています。Denodo 組み込み MPP クラスタは、『 組み込み MPP ガイド 』の手順に従ってデプロイできます。このガイドでは、Denodo に「embedded_mpp」という特殊なデータソースを作成する方法について説明しています。

この特殊なデータソースは、主な機能として、GUI からオブジェクトストレージに接続すること、そのデータを確認すること、Parquet ファイルから基本ビューを作成することができます。それには、データソースを開いて [Read & Write] タブをクリックし、[Object storage configuration] セクションを構成します。アクセスするファイルシステムを選択し、資格情報を入力する必要があります。GUI で使用できるファイルシステムは、S3、ADLS、HDFS です。Google Cloud Storage など、Hadoop API と互換性のある他のシステムを使用できます。これを行うには、[HDFS] を選択し、必要な Hadoop プロパティを指定します (「 Hadoop 互換ストレージのサポート 」のセクションを参照してください)。使用可能な認証方法は、「 HDFS、S3、または ADLS などの分散オブジェクトストレージへのデータ一括読み込み 」のセクションで説明されている認証方法と同じです。
注釈
異なるバケットに対して異なる権限を持つ複数のチームが存在する場合、最初にすべてのチーム向けに最小限の権限を付与した資格情報を構成し、次に各チーム向けにこのデータソースのコピーを作成して固有の資格情報を構成することができます。

その後で、そのオブジェクトストレージから確認するルートを追加できます。必要な資格情報とルートを保存した後に、[Create Base View] をクリックして、それらのルートを確認し、インポート対象を選択します。Denodo は、Parquet 形式のテーブル (Hive スタイルのパーティション分割を使用するテーブルを含む) と Delta 形式および Iceberg 形式のテーブルに対応するフォルダを自動的に検出します。

注釈
Denodo がオブジェクトストレージにアクセスしようとしてエラーやタイムアウトを返した場合は、「 オブジェクトストレージへのアクセスに関する問題のトラブルシューティング 」のセクションを参照してください。
各テーブル形式は、対応するテクノロジーのロゴで識別されます。

インポートするテーブルを選択して [Create selected] をクリックし、基本ビューを作成します。Denodo は、基本ビューを作成し、そのデータにアクセスするためのテーブルを組み込みデータソースに作成します。Denodo はそのテーブルをカタログ Hive およびユーザーが選択したスキーマに作成します。スキーマは、[Create Base View] ダイアログの一番下の [Target schema] ドロップダウンから選択できます (上図を参照)。
注釈
ストアドプロシージャ CREATE_SCHEMA_ON_SOURCE を使用して Denodo 組み込み MPP で新しいスキーマを作成してから更新アイコンをクリックすると、新しいスキーマを選択できます。
組み込み MPP データソースから Kerberos による HDFS に接続する方法¶
Kerberos による HDFS へのコネクションは、組み込み MPP データソースと通常のデータソースではわずかに異なります。以下の構成は、オブジェクトストレージと一括読み込みのどちらの構成にも適用されます。コネクションを構成するには、まず、図のようにターゲットファイルシステムとターゲット URI を構成します。


次に、目的のデータソースに対して以下の Hadoop プロパティを構成する必要があります。
名前
値
hadoop.security.authorization
true
hadoop.security.authentication
kerberos
fs.hdfs.impl
org.apache.hadoop.hdfs.DistributedFileSystem
fs.defaultFS
HDFS connection URI
dfs.namenode.kerberos.principal.pattern
hdfs/*@<krb_domain>
dfs.datanode.kerberos.principal
hdfs/<host>@<krb_domain>
また、認証を構成する必要があります。次の 3 つの異なる認証メカニズムがサポートされています。
クライアントのプリンシパルとパスワード: 指定されたクライアントのプリンシパルとパスワードで HDFS に接続します。これを構成するには、以下のコマンドを実行します。
SET 'com.denodo.vdb.util.hdfs.kerberos.principal'='<client-principal>@<kerberos-domain>'
SET 'com.denodo.vdb.util.hdfs.kerberos.password.secret'='<client password>'
SET 'com.denodo.vdb.util.hdfs.kerberos.keytab.'=NULL
SET 'com.denodo.vdb.util.hdfs.kerberos.passthrough'='false'
クライアントのプリンシパルと keytab: 指定されたクライアントと keytab で HDFS に接続します。
SET 'com.denodo.vdb.util.hdfs.kerberos.principal'='<client-principal>@<kerberos-domain>'
SET 'com.denodo.vdb.util.hdfs.kerberos.password.secret'=NULL
SET 'com.denodo.vdb.util.hdfs.kerberos.keytab'='<path to keytab file>'
SET 'com.denodo.vdb.util.hdfs.kerberos.passthrough'='false'
セッション資格情報パススルー: VDP サーバーへのログインに使用した同じ資格情報 (クライアントのプリンシパルとパスワード/keytab) で HDFS に接続します。このメカニズムを使用するには、VDP で Kerberos 認証を構成する必要があります (「 Virtual DataPort サーバーでの Kerberos 認証の設定 」を参照してください)。
SET 'com.denodo.vdb.util.hdfs.kerberos.principal'=NULL
SET 'com.denodo.vdb.util.hdfs.kerberos.password.secret'=NULL
SET 'com.denodo.vdb.util.hdfs.kerberos.keytab'=NULL
SET 'com.denodo.vdb.util.hdfs.kerberos.passthrough'='true'
前述の構成は、すべての組み込み MPP データソースに適用されます。これを特定の組み込み MPP データソースに特化させるには、以下のように データベース名
と データソース名
で指定のプロパティをパラメータ化します。
SET 'com.denodo.vdb.util.hdfs.kerberos.principal.<db-name>.<ds-name>'='<client-principal>@<kerberos-domain>'
SET 'com.denodo.vdb.util.hdfs.kerberos.password.<db-name>.<ds-name>.secret'=NULL
注釈
暗号化していないパスワードをプロパティ com.denodo.vdb.util.hdfs.kerberos.password
に指定しても、Denodo では暗号化して保存されます。暗号化したプロパティ値を指定する場合は、まず VQL シェルで ENCRYPT PASSWORD 'plain_password'
を実行して暗号化した値を取得し、次に encrypted:<encrypted_password>
形式を使用してパスワード値を指定します。
注釈
一括読み込みのテストを使用するには、これらのプロパティを (予備として) グローバルに構成する必要があります。
最後に、Kerberos に接続できるようにするには、ホストマシン上に Kerberos 5 の構成ファイルが存在している必要があります (「 Kerberos 認証用の krb5 ファイルの提供 」を参照)。
組み込み MPP には、Kerberos で保護されたカタログを扱う場合のいくつかの 制限 があります。
2 つの異なる HDFS があり、一方が Kerberos で保護され、もう一方が保護されない場合、これらの HDFS にアクセスすることはできません。このシナリオでは、Kerberos を使用しない HDFS にアクセスできません。
HDFS 内の Delta 形式のデータから基本ビューを作成することはできません。
Kerberos 制約付き委任はサポートされません。
[From Object Storage] と [From MPP Catalogs] の比較¶
組み込み MPP データソースの [Create Base View] ダイアログには、[From Object Storage] と [From MPP Catalogs] の 2 つのオプションがあります。
デフォルトでは [From Object Storage] オプションを使用します。[Read & Write] タブで定義されているさまざまなルートを確認して、指定したフォルダに基本ビューを作成できます。
[From MPP Catalogs] は、Denodo 組み込み MPP クラスタで定義されているカタログにアクセスできる高度なオプションです。たとえば、システムカタログは、現在稼働しているクラスタに関する情報とメトリックを提供する内部カタログです。
スキーマの進化¶
データの列名と型が時間の経過とともに変化する可能性がある場合、Virtual DataPort は、複数のファイルを分析して、この分析で見つけたすべての列を含むビューを作成します。この挙動を有効にするには、ビューを作成する前に、イントロスペクションパネルの左隅にある [Consider schema evolution] チェックボックスをチェックします。

スキーマの進化を有効にしてビューを作成すると、Parquet テーブルが選択されている場合、イントロスペクションの開始前に新しいパネルが表示されます。このパネルで、特定のイントロスペクションパラメータを決定できます。表が表示され、選択した テーブル 1 つが 1 行に対応します。表形式を以下に示します。
Table: 選択したテーブル名を表示します。
Last modification date: テーブルが最後に変更されたタイムスタンプ (UTC) を表示します。
Number of files to read: テーブルのイントロスペクションの際に分析するファイルの最大数 (ファイル制限) を設定します。この値を増やすと、より多くの変化する列に対する適合性が得られます。この値を減らすと、得られるスキーマの範囲が狭くなります。
Read after this date (optional): このフィールドでは、ファイルの分析を開始する日時 (UTC 時刻形式) を指定できます。ファイルは、指定した日時から、古い順にファイル制限に達するまで分析されます。このフィールドが空の場合、ファイルは、Virtual DataPort によって、テーブルの [Last modification date] の日時から、新しい順にファイル制限に達するまで分析されます。

注釈
Delta テーブルの場合、スキーマ情報は Delta ログから自動的に取得されるため、スキーマの進化の構成は適用されません。
注釈
Iceberg テーブルの場合、スキーマ情報は Iceberg メタデータファイルから自動的に取得されるため、スキーマの進化の構成は適用されません。
イントロスペクションとテーブル作成のプロセスを開始するには、[OK] をクリックします。イントロスペクションをキャンセルして前のパネルに戻るには、[Cancel] をクリックします。大量の Parquet ディレクトリのイントロスペクションには時間がかかる可能性があるので、イントロスペクションの進行状況が表示され、いつでもキャンセルできます。

オブジェクトストレージからのビューのソース更新¶
基本ビューが、組み込み MPP を使用してオブジェクトストレージの Parquet 形式のデータにアクセスする場合、ソース更新には、スキーマの進化に対応する追加のオプションがあります。ソース更新を実行する前に新しいパネルが表示され、ここでイントロスペクションプロセスを調整できます。

このパネルは、前のセクションで説明したパネルに似ています。
Maximum number of files to analyze: テーブルの更新の際に分析するファイルの最大数 (ファイル制限) を設定します。
Consider files modified after this date (optional): このフィールドでは、ファイルの分析を開始する日時 (UTC 時刻形式) を指定できます。ファイルは、指定した日時から、古い順にファイル制限に達するまで分析されます。このフィールドが空の場合、ファイルは、Virtual DataPort によって、新しい順にファイル制限に達するまで分析されます。
オブジェクトストレージから作成されたビューの管理¶
オブジェクトストレージのファイルから作成されたビューは、以下の点で他のビューと異なります。
挿入: 現在、Denodo を使用してこの種のビューにデータを挿入することはできません。
エクスポート: ビューの VQL には、外部オブジェクトストレージのデータソースに対して定義されたルートを特定する ID が含まれています。また、ベースルートからの相対パスも含まれています。
リネージ: データのベースルートが変化するか、またはファイルのスキーマ (列と型) がビューのスキーマと異なる場合、ビューは無効状態になります。ビューを再び有効にするには、変更された新しいスキーマを使用してデータソースからビューを再作成するか、または適切なファイルを参照するようにルートを修正します。