メイン コンテンツをスキップする 補完的コンテンツへスキップ

Google Cloud Platform (GCP) Hadoop HiveデータベースSQL DML (DI/ETL) スクリプト(HiveQL) - インポート

Availability-note AWS

ブリッジの要件

このブリッジ:
  • ドライバーを<TDC_HOME>/data/download/MIMB/にダウンロードするためには、https://repo.maven.apache.org/maven2/ やその他のツールサイトへのインターネットアクセスが必要です。

ブリッジの仕様

ベンダー Google
ツール名 Cloud Platform (GCP) Hadoop Hive Database
ツールバージョン Hive 2.x〜3.x
ツールのWebサイト https://cloud.google.com/gcp/
サポートされている方法論 [データ統合] マルチモデル、データストア(物理データモデル)、SQL TXTファイル経由の(ソースとターゲットのデータストア、変換来歴、式解析)
データプロファイリング
増分収集
マルチモデル収集
モデル選択のためのリモートリポジトリーの参照

仕様
ツール: SQL TXTファイル経由のGoogle / Cloud Platform (GCP) Hadoop HiveデータベースバージョンHive 2.x〜3.x
https://cloud.google.com/gcp/をご覧ください。
メタデータ: [データ統合] マルチモデル、データストア(物理データモデル)、(ソースとターゲットのデータストア、変換来歴、式解析
コンポーネント: SqlScriptApacheHiveQLImport.GoogleCloudPlatformバージョン11.2.0

免責事項
このインポートブリッジでは、インターネットに接続して次のサードパーティライブラリーをダウンロードする必要があります:
- オープンソースのサードパーティライブラリーをダウンロードする場合はhttps://repo.maven.apache.org/maven2/など
- その他のサードパーティソフトウェア(データベース特定のJDBCドライバーなど)は該当するサイトへ

ダウンロードされたサードパーティライブラリーは、$HOME/data/download/MIMB/に格納されています。
HTTPSが失敗した場合、インポートブリッジはHTTPを試します。
- インターネットへのアクセスにプロキシを使用している場合は、JREでそのプロキシを設定する必要があります(Miscellaneousパラメーターで -j オプションをご覧ください。)。
- インポートブリッジではインターネットにフルにアクセスできない場合は、インターネットアクセスがある別のサーバーから$HOME/data/download/MIMB/ディレクトリーをコピーします。$HOME/bin/MIMB.sh (または.bat) -dというコマンドを使えば、すべてのブリッジで使用される全サードパーティライブラリーを一度にダウンロードできます。

このインポートブリッジを実行すると、ライセンス規約の責任、およびダウンロードしたサードパーティソフトウェアライブラリーによって生じる潜在的なセキュリティの脆弱性を受け入れることになります。

概要
このインポートブリッジは、HiveデータベースのSQLデータ操作言語(SQL DML) HiveQLスクリプトのディレクトリーを解析し、ソースとターゲットのデータストアのデータモデル(データベーススキーマ、テーブル、カラムなど)、およびそのようなデータストア間にあるデータフロー来歴のデータ統合(DI/ETL/ELT)モデルを抽出します。

要件
- DML vs DDL:
このインポートブリッジはテーブルに対してデータを挿入、アップデート、削除するステートメントが含まれている完全なSQLデータ操作言語(DML)を解析し、結果的にデータ統合(DI/ETL/ELT)モデルを作成します。SQLスクリプトにスキーマ、テーブル、ビュー、ストアドプロシージャーなどを作成するステートメントのみが含まれている場合は、インポートブリッジを使い、データベースのデータモデルのみを作成するSQLデータ定義言語 (DML)からインポートする必要があります。

- DML vs JDBC:
上記の説明のとおり、SQL DMLスクリプトが単にSQL DDLスクリプト(通常はデータベース内にコンパイルされます)であることがわかった場合です。このようなSQL DDLスクリプトは不完全なことがあり、実際のデータベースと同期していない可能性もあります。したがって、SQL DDLを解析するインポートブリッジではなく、JDBC経由でライブデータベースからメタデータをインポートするインポートブリッジを常に優先させます(以下の制限事項をご覧ください。)。

よくある質問
該当なし

制限事項
現在判明している一般的な制限事項は、https://metaintegration.com/Products/MIMB/Help/#!Documents/mimbknownlimitations.htmlをご覧ください。

サポート
トラブルシューティングパッケージを次の項目と共に提供してください:
- デバッグログ(UIまたはconf/conf.propertiesでMIR_LOG_LEVEL=6を使って設定可能)
- 利用できる場合はメタデータバックアップ(技術的理由によりこの共通オプションが実装されていないブリッジがあるものの、Miscellaneousパラメーターで-backupオプションを使って設定可能)


ブリッジパラメーター

パラメーター名 説明 タイプ デフォルト 範囲
ディレクトリー インポートするSQL DMLスクリプトのディレクトリー。 STRING     必須
包含フィルター 拡張Unix globの大文字と小文字を区別する式構文に基づいて、ルートディレクトリーを基準とする包含フォルダーとファイルフィルターパターン。例:
*.* - ルートレベルであらゆるファイルを含める
*.sql - ルートレベルでSQLファイルのみを含める
**.sql - あらゆるレベルでSQLファイルのみを含める
*.{sql,gz} - ルートレベルでSQLファイルかGZファイルのみを含める
dir/*.sql - dirフォルダーにSQLファイルのみを含める
dir/**.sql - あらゆるレベルでdirフォルダーの下にSQLファイルのみを含める
dir/**. * - あらゆるレベルでdirフォルダーの下にあるあらゆるファイルを含める
f.sql - ルートレベルの下にf.sqlのみを含める
**/f.sql - あらゆるレベルでf.sqlのみを含める
**dir/** - あらゆるレベルでdirフォルダーの下にあるすべてのファイルを含める
**dir1/dir2/** - あらゆるレベルでdir1フォルダーの下にあるあらゆるdir2フォルダーの下のすべてのファイルを含める

包含フィルターと除外フィルターが両方とも空の場合は、ルートディレクトリー下にあるすべてのフォルダーとファイルが含まれます。
STRING      
フィルターを除外する 拡張Unix globの大文字と小文字を区別する式構文を使って、ルートディレクトリーを基準とする除外フォルダーとファイルフィルターパターン。例:
*.* - ルートレベルであらゆるファイルを除外する
*.txt - ルートレベルでTXTファイルのみを除外する
**.txt - あらゆるレベルでTXTファイルのみを除外する
*.{txt,gz} - ルートレベルでTXTファイルかGZファイルのみを除外する
dir/*.txt - dirフォルダーにTXTファイルのみを除外する
dir/**.txt - あらゆるレベルでdirフォルダーの下にTXTファイルのみを除外する
dir/**. * - あらゆるレベルでdirフォルダーの下にあるあらゆるファイルを除外する
f.txt - ルートレベルの下にf.txtのみを除外する
**/f.txt - あらゆるレベルでf.txtのみを除外する
**dir/** - あらゆるレベルでdirフォルダーの下にあるすべてのファイルを除外する
**dir1/dir2/** - あらゆるレベルでdir1フォルダーの下にあるあらゆるdir2フォルダーの下のすべてのファイルを除外する

包含フィルターが空で除外フィルターが空でない場合は、その除外フィルターにマッチングするものを除き、ルートディレクトリー下にあるあらゆるフォルダーとファイルが含まれます。
包含フィルターと除外フィルターの両方が空の場合は、ルートディレクトリーの下にあるすべてのフォルダーとファイルが含まれます。
STRING      
Hadoop設定ディレクトリー アクセスを試みているリモートクラスターとの間に互換性があるファイルcore-site.xmlおよびhdfs-site.xmlのコピーを含むHadoop設定ディレクトリー。 DIRECTORY      
Miscellaneous はじめに
ダッシュで始まるMiscellaneousオプションを指定し、必要であればその後にパラメーターを追加できます。例:
- connection.cast MyDatabase1="MICROSOFT SQL SERVER"
該当する場合は複数回使用できるオプションもあります。例:
- connection.rename NewConnection1=OldConnection1 -connection.rename NewConnection2=OldConnection2;
オプションのリストは長い文字列になるため、${MODEL_BRIDGE_HOME}\data\MIMB\parametersにあり拡張子が.txtであるファイルからロードすることもできます。その場合、オプションはすべて、このパラメーターの唯一の値としてそのファイル内で定義されることが必要です。例:
ETL/Miscellaneous.txt

JAVA環境のオプション
-java.memory <Javaメモリの最大サイズ> (以前の-m)

64ビットJREではデフォルトで1G、またはconf/conf.properties内の設定に従います。例:
-java.memory 8G
-java.memory 8000M

-java.parameters <Javaランタイム環境コマンドラインオプション> (以前の-j)


-java.parameters -Dname=value -Xms1G
のように、-java.parametersの後ろのテキストはすべてそのままJREに渡されるため、このオプションはMiscellaneousパラメーター内の最後に来る必要があります。インターネットへのアクセスにプロキシを使用している場合は、必要なサードパーティのソフトウェアライブラリーをダウンロードできるよう、次のオプションを設定する必要があります(このオプションはhttps://repo.maven.apache.org/maven2/にアクセスするため、そして例外的にいくつかの他のツールサイトにアクセスするために不可欠です)。
注: プロキシは、(会社の)外部トラフィックをHTTPSで暗号化しながら、HTTPでプロキシにアクセスできる内部トラフィックを信頼しているものがほとんどです。この場合、HTTPSリクエストはHTTPでプロキシに到達し、プロキシはそれをHTTPSで暗号化します。
-java.parameters -java.parameters -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=3128 -Dhttp.proxyUser=user -Dhttp.proxyPassword=pass

モデルインポートのオプション
-model.name <モデル名>

モデル名をオーバーライドをオーバーライドします。例:
-model.name "My Model Name"

-prescript <スクリプト名>

このオプションによって、ブリッジの実行前にスクリプトを実行できるようになります。
スクリプトはbinディレクトリー(またはconf/conf.propertiesのM_SCRIPT_PATHで指定)にあり、拡張子が.batか.shであることが必要です。
スクリプトのパスに親ディレクトリーの記号( .. )を含めることはできません。
スクリプトは、成功した場合は終了コードである0を、失敗した場合は別の値を返します。
例:
-prescript "script.bat arg1 arg2"

-postscript <スクリプト名>

このオプションによって、ブリッジが正しく実行された後にスクリプトを実行できるようになります。
スクリプトはbinディレクトリー(またはconf/conf.propertiesのM_SCRIPT_PATHで指定)にあり、拡張子が.batか.shであることが必要です。
スクリプトのパスに親ディレクトリーの記号( .. )を含めることはできません。
スクリプトは、成功した場合は終了コードである0を、失敗した場合は別の値を返します。
例:
-postscript "script.bat arg1 arg2"

-cache.clear

インポート前にキャッシュをクリアするため、増分収集せずにフルインポートを実行します。

モデルが変更されず、-cache.clearパラメーターが使われていない場合(増分収集)、新しいバージョンは作成されません。
モデルが変更されず、-cache.clearパラメーターが設定されている場合(増分ではなくフルソースインポート)、新しいバージョンが作成されます。

-backup <directory>

さらなるトラブルシューティングのため、入力メタデータを保存できるようにします。指定された<directory>は空であることが必要です。

-restore <ディレクトリー>

復元するバックアップ<ディレクトリー>を指定します。

データ接続オプション
使用するソースとターゲットのデータストアを参照するよう、通常はETL/DIツールとBIツールのインポートブリッジによってデータ接続が生成されます。これらのデータ接続はメタデータ管理ツールによって実際のデータストア(データベースやファイルシステムなど)への接続(メタデータスティッチング)に使われ、完全なエンドツーエンドのデータフローの来歴とインパクト分析が行われます。各データ接続の名前はインポートモデルごとに一意です。DI/BIデザインツールで使われているデータ接続名を可能な限り使用します。そうでない場合は、データベース/スキーマ名、ファイルシステムのパス、Uniform Resource Identifier (URI)など、短くても意味のある接続名が生成されます。次のオプションを使えば、接続を操作できます。これらのオプションによって、レガシーオプションである-c、-cd、-csが置き換えられます。

-connection.cast ConnectionName=ConnectionType

SQL解析のためにジェネリックデータベース接続(ODBCやJDBCなど)を正確なデータベースタイプ(ORACLEなど)にキャストします。例:
-connection.cast "My Database"="MICROSOFT SQL SERVER"
サポートされているデータストア接続タイプのリストは次のとおりです。
ACCESS
APACHE CASSANDRA
DB2/UDB
DENODO
GOOGLE BIGQUERY
HIVE
MYSQL
NETEZZA
ORACLE
POSTGRESQL
PRESTO
REDSHIFT
SALESFORCE
SAP HANA
SNOWFLAKE
MICROSOFT SQL AZURE
MICROSOFT SQL SERVER
SYBASE SQL SERVER
SYBASE AS ENTERPRISE
TERADATA
VECTORWISE
HP VERTICA

-connection.rename OldConnection=NewConnection

既存の接続を新しい名前に変更します。例:
-connection.rename OldConnectionName=NewConnectionName
既存の複数のデータベース接続の名前を変更し、新しい1つのデータベース接続に統合できます。例:
-connection.rename MySchema1=MyDatabase -connection.rename MySchema2=MyDatabase

-connection.split oldConnection.Schema1=newConnection

データベース接続を1つまたは複数のデータベース接続に分割します。
1つのデータベース接続をスキーマごとの1つの接続に分割できます。例:
-connection.split MyDatabase
すべてのデータベース接続をスキーマごとの1つの接続に分割できます。例:
-connection.split *
データベースにスキーマ名を追加することで、データベース接続を明示的に分割し、新しいデータベース接続を作成できます。例:
-connection.split MyDatabase.schema1=MySchema1

-connection.map SourcePath=DestinationPath

ソースパスをデスティネーションパスにマッピングします。これは、異なるパスが同じオブジェクト(ディレクトリーまたはファイル)をポイントしている場合にファイルシステム接続にとって便利です。
Hadoopでは、あるプロセスがHDFSの完全パスで指定されたCSVファイルに書き込む一方、別のプロセスが、デフォルトのファイル名と拡張子を持つ相対パスで指定されている同じファイルによって実装されたHiveテーブル(外部)から読み取ります。例:
-connection.map /user1/folder=hdfs://host:8020/users/user1/folder/file.csv
Linuxでは、/users/johnや/users/paulといった複数のシンボリックリンクによって、/dataのような特定のディレクトリー(またはファイル)が参照されます。例:
-connection.map /data=/users/John -connection.map /data=/users/paul
Windowsでは、M:やN:といった複数のネットワークドライブによって、C:\dataのような特定のディレクトリーが参照されます。例:
-connection.map C:\data=M:\ -connection.map C:\data=N:\

-connection.casesensitive ConnectionName...

検出されたデータストアのタイプがこの設定(Microsoft SQL ServerやMySqlなど)をサポートしている場合は、指定された接続内のオブジェクト識別子に対し、大文字と小文字を区別しないデフォルトのマッチングルールがオーバーライドされます。例:
-connection.casesensitive "My Database"

-connection.caseinsensitive ConnectionName...

検出されたデータストアのタイプがこの設定(Microsoft SQL ServerやMySqlなど)をサポートしている場合は、指定された接続内のオブジェクト識別子に対し、大文字と小文字を区別するデフォルトのマッチングルールがオーバーライドされます。例:
-connection.caseinsensitive "My Database"

-connection.level AggregationLevel

外部接続の集計レベルを指定します。例: -connection.level catalog
サポートされている値のリスト:
server
catalog
schema (デフォルト)

ETLのオプション
これらのオプションは、以下の目的ですべてのETL/DIツールとスクリプティングインポートブリッジで利用できます:
- SQL解析をすべて処理する
- デザインモデルとランタイム変数からランタイムモデルをビルドする
- ランタイムサマリー来歴を計算する

-etl.summary.add.ultimate (以前の-ppus)

最終的なランタイム来歴サマリーを追加します(非常に大きなモデルが生成される可能性があります)。

-etl.summary.only.ultimate (以前の-ppsp)

最終的なランタイム来歴サマリーのみ生成します(非常に大きなモデルが生成される可能性があります)。

-etl.connections.add.internal.design (以前の-pppd)

内部ETLデザインデータコネクター(ETL変換に必要)を追加します。

-etl.connections.remove.input (以前の-ri)

生成されるモデルのサイズ縮小のため、入力(ソース)データ接続をすべて削除します。

-etl.transformations.enable.xml

このオプションによって、DI/ETLインポートブリッジ(Informatica PowerCenter、Informatica Developer、Microsoft SSIS、IBM DataStage、Talend Data Integration など)でのXML変換の解析とサポートが有効になります。
Informaticaの場合、そのようなXML変換は次のPowerCenterの機能に相当します。
https://docs.informatica.com/data-integration/powercenter/10-5/xml-guide/midstream-xml-transformations.html
https://docs.informatica.com/data-integration/powercenter/10-5/xml-guide/xml-source-qualifier-transformation.html
ただし、このオプションはインポートの速度を著しく低下させる可能性がありますのでご注意ください。

スクリプトのオプション
-parameter.file <ファイルパス> (以前の-s)

Windows (%param%)形式かLinux (${param}, $1)形式でShellpaパラメーターを解決するファイルへのパスです。このパラメーターは、キー/バリューペアのYAMLファイルへのパスを定義するために使用されます。パスが空白や特殊文字が含まれている場合は、二重引用符でエスケープできます。このファイルのレコードは、スクリプトを事前処理したり、対応するShellパラメーターを実際の値で置き換えりするために使用されます。キーリテラルはエスケープ文字で装飾してはならず、マッチングルールでは大文字と小文字が区別されます。コロン( : )はキーと値のペアの区切り文字として使用されます。パラメーター名の一部である場合はバックスラッシュ( \ )でエスケープする必要があります。たとえばINSERT INTO %SCHEMA1%.t1(c1) SELECT a from %SCHEMA2%.t2;というスクリプトであれば、パラメーターが含まれているファイルは次のように設定できます。例:
# common shell parameter map
SCHEMA1: actual_schema1
SCHEMA2: actual_schema2
# individual script maps
"D:\\MIMB\\hive_001.hql":
${table_name}: actual_table
"D:\\MIMB\\hive_002.hql":
${year_var}: 1993

YAMLファイルには、[共通シェルパラメーターマップ]セクションと[個別のスクリプトマップ]セクションが含まれています。ブリッジは、[共通シェルパラメーターマップ]セクションからキーと値のペアを受け取り、すべてのスクリプトにあるシェルパラメーターをYAMLファイルで指定されている値で置き換えます。[個別のスクリプトマップ]セクションには、個別のスクリプトのペアが含まれています。

指定されたパス名のYAMLファイルをブリッジが検出しない場合は、次の手順に従います。
- テンプレートYAMLファイルを生成してキー/デフォルト値ペアを入力し、適切な値で手動で編集するために使用できるようにします。
- -cache.clearオプションを呼び出します。呼び出さない場合はキャッシュからメタデータを取得しますが、スクリプトの確認さえしないため、テンプレートファイルを生成するための情報は取得されません。

-schema.default <名前> (以前の-d)

デフォルトのスキーマ名。明示的に定義されていないオブジェクトにスキーマ名を指定できるようになります。

-encoding <値> (以前の-e)

エンコーディング。この値は、指定したスクリプトファイルからテキストをロードするために使われます。デフォルトではUTF-8が使われます。例:
-encoding UTF-16
-encoding UTF-16BE
-encoding US-ASCII
STRING      

 

ブリッジのマッピング

マッピング情報は利用できません

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。