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

HPE Ezmeral Data Fabric (MapR) Hadoop Hiveデータベース(JDBC経由のHCatalogおよびMetastore) - インポート

Availability-note AWS

ブリッジの要件

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

ブリッジの仕様

ベンダー Hewlett Packard Enterprise (HPE)
ツール名 HPE Ezmeral Data Fabric Hadoop Hive Database
ツールバージョン Hive 2.x〜3.x
ツールのWebサイト https://www.hpe.com/us/en/software/data-fabric.html
サポートされている方法論 [リレーショナルデータベース] マルチモデル、データストア(物理データモデル)、JDBC API経由の(式解析)
データプロファイリング
増分収集
マルチモデル収集
モデル選択のためのリモートリポジトリーの参照

仕様
ツール: JDBC API経由のHewlett Packard Enterprise (HPE) / HPE Ezmeral Data Fabric Hadoop HiveデータベースバージョンHive 2.x〜3.x
https://www.hpe.com/us/en/software/data-fabric.htmlをご覧ください。
メタデータ: [リレーショナルデータベース] マルチモデル、データストア(物理データモデル)、(式解析)
コンポーネント: ApacheHiveImport.MapRバージョン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というコマンドを使えば、すべてのブリッジで使用される全サードパーティライブラリーを一度にダウンロードできます。

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

概要
JDBCを使ってMAPR HIVEをインポート

このブリッジはMaprのHiveサーバーへのJDBC接続を確立し、物理メタデータを抽出できるようにします。非常に大きなHiveデータベースの場合、このブリッジはHive Metastoreサーバー(Metastoreで始まるすべてのパラメーター名をご確認ください)へのJDBC接続を確立し、物理メタデータの抽出を加速することもできます。

要件
1つまたは複数のテーブルにカスタムSerDeがある場合は、Hiveクラスパスの一部となっていることが必要です。そのようなテーブルをHIVE_HOME/libディレクトリーに追加すれば、自動的に選択されるようになります。

よくある質問
Q: (Kerberosなどの)セキュアなHadoop Hiveサーバーに対するWindows JDBCクライアント接続をテスト/デバッグするにはどうすればよいですか?
A: セキュアなHadoop Hiveサーバー(Kerberosなど)への接続を確立するには、適切なHadoopディストリビューションベンダーに固有のURL (パラメーターURL)、およびこのブリッジのセキュリティ関連パラメーター(Kerberos設定ファイル、Keytabファイル、ユーザープロキシ、Miscellaneous)を使用する必要があります。これらのパラメーターの各ツールチップの手順に従ってください。
セキュリティで保護された(Kerberosなどの) Hadoop Hiveサーバーへの接続をテスト/デバッグするため、ユーザーインターフェイスに常に送信されるわけではないすべてのHadoopサーバーやKerberosメッセージにアクセスできることが必要です。そのため、${MODEL_BRIDGE_HOME}} binhive_test.batで提供されるユーティリティを使用できます。そのバッチファイルを編集して同様のパラメーターを与え、そのスクリプトを実行してHadoop HiveサーバーとKerberosメッセージを分析します。

制限事項
現在判明している一般的な制限事項は、https://metaintegration.com/Products/MIMB/Help/#!Documents/mimbknownlimitations.htmlをご覧ください。
Hiveが特定のテーブル用のカスタムシリアライザーを検出できない場合は、例外がスローされ、ブリッジはそのテーブルのメタデータの読み取りをスキップします。

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


ブリッジパラメーター

パラメーター名 説明 タイプ デフォルト 範囲
Javaライブラリーディレクトリー HiveServer2へのアクセスに必要なJARファイルが含まれているディレクトリー:
- Hadoopディストリビューションに固有のJDBCドライバーJARファイル
- HadoopクライアントJARファイルKerberosセキュアモードの使用時) 通常は/usr/lib/hadoop/clientで利用可能)
- Java Cryptography Extension JARファイル(強力な暗号化の使用時。通常はOracle JavaのWebサイトで利用可能)
- HadoopがインストールされていないWindowsでの実行時に重要でない例外を回避できるwinutils.exeを伴う'bin'ディレクトリー

HiveServer2 JDBC Clients接続のためのジェネリックなApache Hiveドキュメンテーション: https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Clients#HiveServer2Clients-RunningtheJDBCSampleCode
DIRECTORY      
[URL] Hiveサーバーが実行中であるJDBC URLを入力します。例:

jdbc:hive://COMPUTER_NAME_OR_IP:10000
または
jdbc:hive2://COMPUTER_NAME_OR_IP:10000
STRING   jdbc:hive2://hostname:portNumber/  
ユーザー 接続が確立されている側のHiveユーザー名です。

このインポートブリッジのメインドキュメンテーションで「権限」のセクションをご覧ください。
STRING      
パスワード 接続が確立されている側のHiveユーザーのパスワードです。 パスワード      
SerDe jarsリスト このオプションは、ブリッジがHiveシステム上でリモートで実行するために使用するSerDe jarに対する完全修飾パス名のセミコロンで区切られたリストを指定するために使用できます。 STRING      
Kerberos設定ファイル クライアント側でKerberos設定を上書きします。例:
/etc/krb5/krb5.conf
STRING      
keytabファイル Hive認証にKerberosが使用されている場合、このオプションはKerberos keytabファイルへの完全修飾パス名を指定するために使用できます。例:
/etc/security/keytabs/hive.service.keytab
STRING      
User proxy Hive認証にKerberosが使用されている場合、このオプションはプロキシユーザーまたはグループ名を指定するために使用できます。 STRING      
Metastore JDBCドライバーのロケーション 有効なJARフォルダーの場所を指定します。すべてのJARがこのフォルダーからCLASSPATHに追加されます。 DIRECTORY      
Metastore JDBCドライバークラス* hive-site.xmlからjavax.jdo.option.ConnectionDriverNameという値をここにコピーして貼り付けてください。
通常、このファイルは/etc/alternatives/hive-confにあります
Hadoop/Hiveの設定によっては別の場所で見つかることもあります。例:
com.mysql.jdbc.Driver
STRING      
Metastore JDBC URL* hive-site.xmlからjavax.jdo.option.ConnectionURLという値を見つけ、
データベースサーバー(MySQL、PostgreSQLなど) URLへの接続を定義します

(例: jdbc:mysql://127.0.0.1)

このファイルは通常、/etc/alternatives/hive-confに存在しますが、
Hadoop/Hiveの設定によっては別の場所に存在することもあります。

URLでデータベース名を指定することをお勧めします。
STRING      
Metastoreデータベース名 このオプションは後方互換性のためにのみ使用されます。
'Metastore JDBC URL*'にHive Metastoreのデータベース名を入力してください。
STRING      
Metastoreユーザー 接続が確立されている側のHive Metastoreデータベースのユーザー名です。

ユーザー権限
このブリッジは、[メタストア]データベースへのアクセス権(読み取り専用)を持つユーザーが必要です。 

MySQLの例:
GRANT SELECT ON metastore.* TO 'user'@'%';
STRING      
Metastoreパスワード 接続が確立されている側のHive Metastoreデータベースユーザーのパスワードです。 パスワード      
複数のスレッド メタデータを非同期で収集するためのワーカースレッドの数。

- インポートブリッジに値を計算させる場合はパラメーターを空欄のままにしておきます。JVMアーキテクチャーと利用可能なCPUコアの数に応じて、1から6の間の数値を入れます。

- 実際のスレッド数を指定する場合は、1以上の数値を入力します。
指定した値が無効な場合は警告が表示され、1が使用されます。
メタデータを非同期で収集する時にメモリ不足になった場合は、数値を小さくして試してください。
マシンで利用できるメモリが多い(たとえば10GB以上)場合は、多くのドキュメントを一度に収集する時により大きな数値で試してみることができます。
ただし、設定した数値が大きすぎると、リソースの競合によりパフォーマンスの低下を招く場合があります。
数値      
[Schema] (スキーマ) インポートするHiveスキーマのリストを指定します。
リストが空の場合は、利用できるスキーマがすべてインポートされます。
リストには、セミコロンで区切られた1つまたは複数のスキーマ名(例: schema1; schema2)を含めることができます。

%というワイルドカード記号かNOTというキーワードを使って、スキーマ名のパターンを指定できます。

パターンは包含と除外をサポートします。
包含構文の一例として"A%; %B; %C%; D"がありますが、これは次のいずれかに該当するスキーマ名を取得しようとします。
- Aで始まる
- Bで終わる
- Cを含む
- Dに等しい

パターンを除外する場合はNOTというプレフィックスを付けます。除外構文の一例として"A%; NOT %def"
がありますが、これはAで始まりdefで終わらない名前を持つスキーマをインポートするものです。

オプションのリストは長い文字列になることがあるため、ファイルからロードすることも可能です。そのファイルは${MODEL_BRIDGE_HOME}\data\MIMB\parametersに配置し、拡張子を.txtとしてください。その場合、スキーマはすべて、このパラメーターの唯一の値としてそのファイル内で定義される必要があります。例:
HIVE/ListOfSchema.txt
REPOSITORY_SUBSET      
テーブル インポートするHiveテーブルのリストを指定します。
リストが空の場合は、利用できるテーブルがすべてインポートされます。
リストには、セミコロンで区切られた1つまたは複数のテーブル名(例: sample_07; sample_08)を含めることができます。

%というワイルドカード記号かNOTというキーワードを使って、テーブル名のパターンを指定できます。

パターンは包含と除外をサポートします。
包含構文の一例として"A%; %B; %C%; D"がありますが、これは次のいずれかに該当するテーブル名を取得しようとします。
- Aで始まる
- Bで終わる
- Cを含む
- Dに等しい

パターンを除外する場合はNOTというプレフィックスを付けます。除外構文の一例として"A%; NOT %def"がありますが、これは
Aで始まりdefで終わらない名前を持つテーブルをインポートします。
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 (デフォルト)

HIVEのオプション
-i

インデックスをインポートします。

-d

Kerberos Debuggingモードを有効にすることで、Kerberos V5プロトコルのブリッジ実行をフォローできます。
このブリッジは、sun.security.krb5.debugというシステムプロパティをtrueに設定します。
Kerberos設定に問題が発生した場合は、-dオプションを有効にし、実行ログをサポートに送信してください。

-location.skip

外部ファイルへのテーブル接続を無効にします。

-location.pattern <Hiveロケーションベースのパーティションディレクトリーパス>

ブリッジは標準的なパーティション位置のパーティションを自動的に検出しようとします。
この操作は、ロケーションにHiveテーブル名とパーティション名が含まれている場合に行われます。
このパラメーターで指定することで、一部またはすべてのパーティションの検出プロセスを延長できます。
Hiveパーティションロケーションのパターンを指定します。
複数のパスをコンマ( , )またはセミコロン( ; )で区切ります。
次の例によって、(従業員に他のフォルダーがある場合も)従業員データセットが作成されます。
-location.pattern hdfs://localhost:9000/user/hive/warehouse/employee

-partition.import

テーブルがマージされたロケーションにテーブルパーティションロケーションをすべてインポートします。

-partition.allsamples

テーブルパーティションロケーションのサンプルをすべて[PartitionLocationsWithSamples]プロパティにインポートします

-tblproperties.skip

テーブルの構造的メタデータとは関係がないテーブルのプロパティ(データが変わると変化するCreationTime、SerDe Library、numRowsなど)は、インポート(スキップ)しないでください。
変化するそのようなテーブルプロパティ(操作メタデータなど)をスキップすることで、変更が超過検出されなくなり、増分収集がより効率的になります。

-model.split (以前の-multiModel)

大型データベースモデルをマルチモデル(例: モデルごとに1つのスキーマ)に分割します。
警告: これはこのインポートブリッジを呼び出すアプリケーションによって管理されるシステムオプションであり、ユーザーが設定するものではありません。
STRING      

 

ブリッジのマッピング

Meta Integration Repository (MIR)
メタモデル
(OMG CWM標準に基づく)
[HPE Ezmeral Data Fabric (MapR) Hadoop Hiveデータベース(JDBC経由のHCatalogとメタストア)]
メタモデル
Apache Hive (データベース)
マッピングのコメント
     
属性 カラム、パーティションカラム テーブル上のパーティションの一部であるカラム。
コメント コメント  
説明 説明  
ExtraConstraint 制約  
InitialValue 初期値  
名前 名前  
NativeId ネイティブID  
オプション Null可能  
位置 位置  
クラス テーブル  
コメント コメント  
説明 説明  
名前 名前  
NativeId ネイティブID  
ClassDiagram  
説明 説明  
名前 名前  
ConnectionPackage HDFSフォルダー  
説明 説明  
名前 名前  
DatabaseSchema データベース  
コメント コメント  
説明 説明  
名前 名前  
NativeId ネイティブID  
DesignPackage サブジェクトエリア  
説明 説明  
名前 名前  
FlatTextファイル 外部ファイル  
説明 説明  
名前 名前  
インデックス インデックス、クラクター化済み クラスタまたはバケット化されたカラム
コメント コメント  
説明 説明  
名前 名前  
NativeId ネイティブID  
結合 論理リレーションシップ  
説明 説明  
名前 名前  
SQLViewAttribute カラムを表示  
コメント コメント  
説明 説明  
名前 名前  
NativeId ネイティブID  
位置 位置  
SQLViewEntity 表示  
コメント コメント  
説明 説明  
名前 名前  
NativeId ネイティブID  
ViewStatement ステートメントを表示  
StoreConnection 外部テーブル接続  
説明 説明  
名前 名前  
StoreModel Hiveモデル  
作成者 作成者  
コメント コメント  
CreationTime 作成日時  
説明 説明  
ModificationTime 変更日時  
変更者 変更者  
名前 名前  
NativeId ネイティブID  
StoreType 保管タイプ  
SystemMajorバージョン システムのメジャーバージョン  
SystemMinorバージョン システムのマイナーバージョン  
SystemReleaseバージョン システムのリリースバージョン  
SystemType システムタイプ  
SystemTypeOld システムタイプ(旧)  

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

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