メタデータ検出ツール¶
メタデータ検出ツールは、分散ストレージのスキャンをユーザーが指定したフォルダから開始し、フォルダまたはサブフォルダで見つけた Parquet データセットごと に対応する Hive テーブルを Denodo 組み込み MPP に、対応する 基本ビューを Denodo VDP に、それぞれ作成します。
メタデータ検出ツールは、パーティション分割されたデータセットから Hive テーブルを作成し、Hive のフォルダ命名規則に従って``columnName=value, elb_name=abc`` のように命名できます。
.../weblogs/elb_name=abc/elb_response_code=200/…
.../weblogs/elb_name=abc/elb_response_code=404/…
.../weblogs/elb_name=xyz/elb_response_code=200/…
メタデータ検出ツールは、パーティションテーブルを作成するたびに自動的に sync_partition_metadata
を呼び出します。
このツールは、Denodo ストアドプロシージャおよびスクリプトとして配布されます。
警告
メタデータ検出ツールは、Denodo 組み込み MPP に接続された標準の JDBC データソースと組み合わせて使用するように設計されています。
Denodo 組み込み MPP データソースと組み合わせて使用しても正常に動作せず、以下のエラーをスローします。
It is not allowed to create views from the selected catalog of the embedded MPP data source.
ストアドプロシージャ DISCOVER_PRESTO_METADATA¶
DISCOVER_PRESTO_METADATA
ストアドプロシージャは、フォルダ metadata-discovery/sp/denodo-presto-k8scluster-{version}-jar-with-dependencies.jar
に配布されています。
Denodo でこのストアドプロシージャを使用するには、まず VDP 管理ツールでメニューオプション [File
] > [Extension management
] を使用して、ファイル denodo-presto-k8scluster-{version}-jar-with-dependencies.jar
をインポートする必要があります。
次に、VDP 管理ツールでメニューオプション [File
] > [New
] > [Stored procedure
] をクリックしてストアドプロシージャを作成し、以下の値を指定します。
Name: 名前
Class name:
com.denodo.connect.presto.MetadataDiscoveryStoredProcedure
Select Jars:
denodo-discover-presto-metadata
これで、以下の方法でストアドプロシージャを実行できるようになります。
ストアドプロシージャのスキーマを表示するダイアログで [Execute] ボタンを使用します。表示されるダイアログで入力値を入力する必要があります。
VQL シェルを使用します。
SELECT * FROM discoverprestometadata() WHERE dir_to_explore='s3a://bucket/dir/' and credentials_path='/absolute/path/to/core-site.xml' and datasource_name='the_presto_datasource' and duplicate_strategy='NEVER_REPLACE' and included_pattern=NULL and baseview_folder='/01 - Connectivity/02 - Base Views' and baseview_prefix='bv_' and analyze_tables=true
ストアドプロシージャの 必須 入力パラメータを以下に示します。
dir_to_explore
: メタデータ検出プロセスを開始する、分散ストレージパスのディレクトリ (s3a, wasb, abfs
)。datasource_name
: Denodo 組み込み MPP に接続されている標準の JDBC データソースの名前 (詳細については、「 Denodo からの接続 」のセクションを参照)。このストアドプロシージャによって作成される基本ビューはこのデータソースに属します。
オプション 入力パラメータを以下に示します。
credentials_path
: 分散ストレージの資格情報が含まれるcore-site.xml
への絶対パス。duplicate_strategy
: Denodo 組み込み MPP および Denodo VDP に既存のメタデータをどのように扱うかを選択します。指定できる値はNEVER_REPLACE
、REPLACE_IF_NEW_COLUMNS
、およびALWAYS_REPLACE
です。パラメータに値が指定されない場合、NEVER_REPLACE
が選択されます。NEVER_REPLACE
: 組み込み MPP の Hive テーブルおよび Denodo VDP の基本ビューが既存の場合、それらは置き換えられません。REPLACE_IF_NEW_COLUMNS
: 既存の Hive テーブルで新しい列が検出された場合、組み込み MPP の Hive テーブルおよび Denodo VDP の対応する基本ビューが置き換えられます。これは、ユーザーが変更していた (フィールドの名前の変更、フィールド型やキャッシュ構成の変更など) 既存の Denodo 基本ビューに影響を及ぼします。なぜなら、これらの基本ビューは置き換えられ、その種の変更は失われるからです。Denodo 基本ビューは常にそのまま維持し、これらの基本ビューから派生したビューのみを変更することをお勧めします。ALWAYS_REPLACE
: 既存の Hive テーブルで任意の種類の変更 (新しい列、削除された列、異なる型の列など) が検出された場合、組み込み MPP の Hive テーブルおよび VDP の対応する基本ビューが置き換えられます。これは、ユーザーが変更していた (フィールドの名前の変更、フィールド型やキャッシュ構成の変更など) 既存の Denodo 基本ビューに影響を及ぼします。なぜなら、これらの基本ビューは置き換えられ、その種の変更は失われるからです。Denodo 基本ビューは常にそのまま維持し、これらの基本ビューから派生したビューのみを変更することをお勧めします。
included_pattern
: スキャンプロセスで特定のファイルまたはフォルダのみを選択する正規表現。例:(.*)invoices(.*)
baseview_folder
: このパラメータが指定されている場合、ストアドプロシージャによって作成されるすべての基本ビューが、このフォルダに配置されます。このフォルダは、必要に応じてストアドプロシージャによって作成されます。baseview_prefix
: このパラメータが指定されている場合、ストアドプロシージャによって作成されるすべての基本ビューの名前の先頭に、この値が付加されます。このパラメータが設定されず、無効な名前の基本ビューが作成される場合、プレフィックス"bv"
が付加されます。analyze_tables
: テーブルを作成するたびに、ANALYZE
コマンドを実行するかどうか。このコマンドは、組み込み MPP オプティマイザーがコスト戦略に基づいてクエリプランを生成するために使用するデータに関する統計情報を収集します。
このストアドプロシージャの出力は EXECUTED_COMMAND
であり、Denodo 組み込み MPP と Denodo VDP で正常に実行された DDL ステートメントを示します。具体的には、組み込み MPP で作成された各テーブルの SQL および Denodo で作成された各ラッパーと各基本ビューの VQL です。
メタデータ検出のスクリプト¶
メタデータ検出スクリプトは、 metadata-discovery/bin
フォルダに配布されています。入力として、構成ファイルが必要です。
./denodo-presto-metadata-discovery.sh ../conf/configuration.properties
構成ファイル¶
dirToExplore=s3a://example-bucket/dir/
credentials.xml.path=../conf/core-site.xml
#includedPattern=(.*)blahblah(.*)
# Denodo connection properties
denodo.jdbcUrl=jdbc:vdb://localhost:9999/presto_tests
denodo.username=admin
denodo.password=admin
presto.jdbcUrl=jdbc:presto://localhost:8443/hive/default?SSL=true\&SSLTrustStorePath=truststore-path&SSLTrustStorePassword=truststore-pwd
presto.username=presto
presto.password=pr3st%
# Default values
denodo.datasource.name=ds_presto_k8s
denodo.datasource.folder=/01 - Connectivity/01 - Data Sources
denodo.baseview.folder=/01 - Connectivity/02 - Base Views
denodo.baseview.prefix=bv_
presto.analyze.tables=true
# Possible values: NEVER_REPLACE, REPLACE_IF_NEW_COLUMNS, REPLACE_ALWAYS
metadata.duplicated.strategy=NEVER_REPLACE
dirToExplore
: メタデータ検出プロセスを開始する、分散ストレージパスのディレクトリ (s3a, adl, wasb, abfs
)。credentials.xml.path
: 分散ストレージの資格情報が含まれるcore-site.xml
。includedPattern
: スキャンプロセスで特定のファイルまたはフォルダのみを選択する正規表現。例:(.*)invoices(.*)
.Denodo connection properties
: JDBC の URI、ユーザー、およびパスワード。Presto Connection properties
: JDBC の URI、ユーザー、およびパスワード。denodo.datasource.name
: このスクリプトによって Denodo に作成され、Denodo 組み込み MPP に接続される、標準の JDBC データソースの名前。denodo.datasource.folder
: このパラメータが指定された場合、このスクリプトによって Denodo に作成される JDBC データソースは、このフォルダに配置されます。このフォルダは、必要に応じてスクリプトによって作成されます。denodo.baseview.folder
: このパラメータが指定されている場合、ストアドプロシージャによって作成されるすべての基本ビューが、このフォルダに配置されます。このフォルダは、必要に応じてスクリプトによって作成されます。denodo.baseview.prefix
: このパラメータが指定されている場合、ストアドプロシージャによって作成されるすべての基本ビューの名前の先頭に、この値が付加されます。このパラメータが設定されず、無効な名前の基本ビューが作成される場合、プレフィックス"bv"
が付加されます。presto.analyze.tables
: テーブルを作成するたびに、 ANALYZE コマンドを実行するかどうか。このコマンドは、Denodo 組み込み MPP オプティマイザーがコスト戦略に基づいてクエリプランを生成するために使用するデータに関する統計情報を収集します。 デフォルトはtrue
です。metadata.duplicated.strategy
: Denodo 組み込み MPP および Denodo VDP に既存のメタデータをどのように扱うかを選択します。指定できる値はNEVER_REPLACE
、REPLACE_IF_NEW_COLUMNS
、およびALWAYS_REPLACE
です。パラメータに値が指定されない場合、NEVER_REPLACE
が選択されます。NEVER_REPLACE
: Denodo 組み込み MPP の Hive テーブルおよび Denodo VDP のデータソースと基本ビューが既存の場合、それらは置き換えられません。REPLACE_IF_NEW_COLUMNS
: 既存の Hive テーブルで新しい列が検出された場合、Denodo 組み込み MPP の Hive テーブルおよび Denodo VDP の対応する基本ビューが置き換えられます。これは、ユーザーが変更していた (フィールドの名前の変更、フィールド型やキャッシュ構成の変更など) 既存の Denodo 基本ビューに影響を及ぼします。なぜなら、これらの基本ビューは置き換えられ、その種の変更は失われるからです。Denodo 基本ビューは常にそのまま維持し、これらの基本ビューから派生したビューのみを変更することをお勧めします。ALWAYS_REPLACE
: 既存の Hive テーブルで任意の種類の変更 (新しい列、削除された列、異なる型の列など) が検出された場合、Denodo 組み込み MPP の Hive テーブルおよび Denodo VDP の対応する基本ビューが置き換えられます。これは、ユーザーが変更していた (フィールドの名前の変更、フィールド型やキャッシュ構成の変更など) 既存の Denodo 基本ビューに影響を及ぼします。なぜなら、これらの基本ビューは置き換えられ、その種の変更は失われるからです。Denodo 基本ビューは常にそのまま維持し、これらの基本ビューから派生したビューのみを変更することをお勧めします。
ストアドプロシージャの出力¶
プロセスの出力を以下に示します。
Denodo 組み込み MPP で作成された Hive テーブルのリスト
Denodo で作成され、Denodo のデータソースの
Database URI
としてpresto.jdbcUrl
が構成されている JDBC データソースDenodo で作成された基本ビュー
METADATA DISCOVERY RESULTS
**************************
Commands executed at Denodo Embedded MPP:
-----------------------------------------
CREATE TABLE "customer" (
ANALYZE "customer"
CREATE TABLE "store" (
ANALYZE TABLE "store"
CREATE TABLE "store_sales" (
ANALYZE "store_sales"
CREATE TABLE "date_dim" (
ANALYZE "date_dim"
-----------------------------------------
Commands executed at Denodo VDP (data source):
----------------------------------------------
CREATE FOLDER '/01 - Connectivity';
CREATE FOLDER '/01 - Connectivity/01 - Data Sources';
CREATE DATASOURCE JDBC "ds_presto_k8s"
----------------------------------------------
Commands executed at Denodo VDP (base views):
---------------------------------------------
CREATE OR REPLACE FOLDER '/01 - Connectivity/02 - Base Views';
CREATE OR REPLACE WRAPPER JDBC bv_customer
CREATE OR REPLACE TABLE bv_customer I18N us_pst (
CREATE OR REPLACE WRAPPER JDBC bv_date_dim
CREATE OR REPLACE TABLE bv_date_dim I18N us_pst (
CREATE OR REPLACE WRAPPER JDBC bv_store
CREATE OR REPLACE TABLE bv_store I18N us_pst (
CREATE OR REPLACE WRAPPER JDBC bv_store_sales
CREATE OR REPLACE TABLE bv_store_sales I18N us_pst (