Cloudera Impala Hadoop HiveデータベースSQL DDLスクリプト - インポート
ブリッジの仕様
ベンダー | Cloudera |
ツール名 | Impala Hadoop Hiveデータベース |
ツールバージョン | Hive 2.x〜3.x |
ツールのWebサイト | http://www.cloudera.com/products/apache-hadoop/impala.html |
サポートされている方法論 | [リレーショナルデータベース] マルチモデル、データストア(物理データモデル)、SQL TXTファイル経由の(式解析) |
データプロファイリング | |
増分収集 | |
マルチモデル収集 | |
モデル選択のためのリモートリポジトリーの参照 |
仕様
ツール: SQL TXTファイル経由のCloudera / Impala Hadoop HiveデータベースバージョンHive 2.x〜3.x
https://www.cloudera.com/products.htmlをご覧ください。
メタデータ: [リレーショナルデータベース] マルチモデル、データストア(物理データモデル)、(式解析)
コンポーネント: DdlScriptApacheHiveQLImport.ClouderaImpalaバージョン11.2.0
概要
このインポートブリッジは、Hive SQLデータ定義言語(SQL DDL)スクリプトのディレクトリーを解析し、そのメタデータ(スキーマ、テーブル、カラム、データ型など)をすべて抽出して任意のSQL(ビュー、ストアドプロシージャーなど)を解析することでデータフロー履歴を生成します。
- DDL vs JDBC
このインポートブリッジは、(通常はデータベース内でコンパイルされる)スキーマ、テーブル、ビュー、ストアドプロシージャーなどを作成するSQL DDLステートメントを解析します。このようなSQL DDLスクリプトは不完全なことがあり、実際のデータベースと同期していない可能性もあります。したがって、SQL DDLを解析するインポートブリッジではなく、JDBC経由でライブデータベースからメタデータをインポートするインポートブリッジを常に優先させます(以下の制限事項をご覧ください。)。
- DDL vs DML:
このインポートブリッジは、スキーマ、テーブル、ビュー、ストアドプロシージャーなどを作成するSQLデータ定義言語(DDL)ステートメントを解析してデータベースのデータモデルを作成するだけです。SQLスクリプトにテーブルのデータを挿入、アップデート、削除するステートメントも含まれている場合は、データ統合(DI/ETL/ELT)モデルを作成する完全なSQLデータ操作言語(DML)からインポートするインポートブリッジを使用する必要があります。
要件
該当なし
よくある質問
Q: Hadoop HiveサーバーからDDLを取得するにはどうすればよいですか?
A: ${MODEL_BRIDGE_HOME}/bin/hive_generate_ddl.shで提供されているユーティリティを使用してください。このユーティリティをHiveクラスターに配置します(場所は問いません)。配置したら、bashシェルとリモートで接続し、ユーティリティを実行します。ユーティリティは、クラスターにあるすべてのスキーマからtables.hqlという名前のファイルにDDLを抽出します。また、ユーティリティの最初のパラメーターとして、抽出するスキーマのリストを渡すこともできます。
制限事項
現在判明している一般的な制限事項は、https://metaintegration.com/Products/MIMB/Help/#!Documents/mimbknownlimitations.htmlをご覧ください。
サポート
トラブルシューティングパッケージを次の項目と共に提供してください:
- デバッグログ(UIまたはconf/conf.propertiesでMIR_LOG_LEVEL=6を使って設定可能)
- 利用できる場合はメタデータバックアップ(技術的理由によりこの共通オプションが実装されていないブリッジがあるものの、Miscellaneousパラメーターで-backupオプションを使って設定可能)
ブリッジパラメーター
パラメーター名 | 説明 | タイプ | 値 | デフォルト | 範囲 | |||
ファイル | インポートするデータベースSQL DDLスクリプトを持つファイル。 | ファイル |
|
必須 | ||||
デフォルトスキーマ | スキーマ修飾子が定義されていないオブジェクトに使用するデフォルトスキーマ名。 | STRING | ||||||
スキーマ | インポートするスキーマのサブセットで、セミコロンで区切られたスキーマのリストとして表現されたものです。例: schema1; schema2 リストが空の場合はユーザースキーマがすべてインポートされます。 デフォルトでは、システムスキーマ(例: SysAdmin)とオブジェクトがすべて無視されます。システムスキーマが必要である場合は、Miscellaneousパラメーターオプションである-sを使用します。 SQLのLIKE演算子で使われる構文規則を使ったスキーマ名パターン: - 包含構文: %を使用。例: A%; %B; %C%; D - Aで開始、または - Bで終了、または - Cを含む、または - Dに等しい - 除外構文: NOTを使用。例: A%; %B; NOT %SYS; NOT 'SYS%' - where (A%のような名前または%Bのような名前) - and (%SYSとは異なる名前) - and (SYS%とは異なる名前) - 特殊文字: 一重引用符を使用。例: OneWord%; 'Two Words%' |
STRING | ||||||
テーブルとビュー | インポートするテーブルのサブセットで、セミコロンで区切られたテーブルのリストとして表現されたものです。例: table1; table2 リストが空の場合はユーザーテーブルがすべてインポートされます。 デフォルトでは、システムテーブル(例: SysAdmin)とオブジェクトがすべて無視されます。システムテーブルが必要である場合は、Miscellaneousパラメーターオプションである-sを使用します。 SQLのLIKE式構文を使用するテーブル名パターン: - 包含構文: %を使用。例: A%; %B; %C%; D - Aで開始、または - Bで終了、または - Cを含む、または - Dに等しい - 除外構文: NOTを使用。例: A%; %B; NOT %SYS; NOT 'SYS%' - where (A%のような名前または%Bのような名前) - and (%SYSとは異なる名前) - and (SYS%とは異なる名前) - 特殊文字: 一重引用符を使用。例: OneWord%; 'Two Words%' |
STRING | ||||||
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 (デフォルト) SQL DDLのオプション -s <パス名> スクリプトファイルの事前処理を行い、シェルパラメーターを実際の値に置き換えるために使われるキー/値ペアファイルへのパス。パスが空白や特殊文字が含まれている場合は、二重引用符でエスケープできます。コロン記号( : )がパラメーター名の一部である場合は、\ でエスケープする必要があります。ファイル(パス名で参照)は以下の形式であることが必要です: key1:value1 "key 2":value2 \:key3withcolon:value3 例: -s J:\MIMB\map_of_shell_parameters.txt -default.server <サーバー名> デフォルトのサーバー。デフォルトのデータベースサーバー名を指定できます。 -default.database <データベース名> デフォルトのデータベース。データベース名を指定できます。 -default.databasetype <データベースタイプ> デフォルトのデータベースタイプ。デフォルトのデータベースタイプを指定できます。 -e <エンコーディング> この値は、指定したスクリプトファイルからテキストをロードするために使われます。デフォルトではUTF-8が使われます。例: -e UTF-16 -e UTF-16BE -e US-ASCII -e ISO-8859-1 -p <ウェアハウスパス> ウェアハウスのパス。デフォルトは/user/hive/warehouseです。例: -p /user/hive/temp -model.split (以前の-multiModel) 大型データベースモデルをマルチモデル(例: モデルごとに1つのスキーマ)に分割します。 |
STRING |
ブリッジのマッピング
マッピング情報は利用できません