# Google Cloud BigQueryデータベース(JDBC経由) - インポート

Availability-note[AWS](https://help.talend.com/r/en-US/Cloud/labels-on-talend-help-center/availability-aws)

AWS 専用機能は us.cloud.talend.com、eu.cloud.talend.com、ap.cloud.talend.com で利用できます。

## ブリッジの要件

このブリッジ:

* ドライバーを&lt;TDC\_HOME&gt;/data/download/MIMB/にダウンロードするためには、https://repo.maven.apache.org/maven2/ やその他のツールサイトへのインターネットアクセスが必要です。

## ブリッジの仕様

| **ベンダー** | **Google** |
| --- | --- |
| **ツール名** | **Cloud BigQueryデータベース** |
| **ツールバージョン** | **2.0.0** |
| **ツールのWebサイト** | http://developers.google.com/bigquery/ (英語のみ) |
| **サポートされている方法論** | [リレーショナルデータベース] マルチモデル、データストア(物理データモデル) Java API経由の |
| **データプロファイリング** | ![](https://help.qlik.com/talend/ja-JP/talend-data-catalog/8.0/Content/Resources/images/tick.png) |
| **増分収集** | ![](https://help.qlik.com/talend/ja-JP/talend-data-catalog/8.0/Content/Resources/images/tick.png) |
| **マルチモデル収集** | ![](https://help.qlik.com/talend/ja-JP/talend-data-catalog/8.0/Content/Resources/images/tick.png) |
| **モデル選択のためのリモートリポジトリーの参照** | ![](https://help.qlik.com/talend/ja-JP/talend-data-catalog/8.0/Content/Resources/images/tick.png) |

**仕様**  
**ツール:** Java API経由のGoogle / Cloud BigQueryデータベースバージョン2.0.0  
http://developers.google.com/bigquery/をご覧ください。  
**メタデータ:** [リレーショナルデータベース] マルチモデル、データストア(物理データモデル)  
**コンポーネント:** GoogleBigQueryバージョン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というコマンドを使えば、すべてのブリッジで使用される全サードパーティライブラリーを一度にダウンロードできます。  
  
このインポートブリッジを実行すると、ライセンス規約の責任、およびダウンロードしたサードパーティソフトウェアライブラリーによって生じる潜在的なセキュリティの脆弱性を受け入れることになります。  
  
**概要**  
このインポートブリッジはGoogleのBigQueryHiveサーバーへの接続を確立し、物理メタデータを抽出します。  
  
**要件**  
このインポートブリッジは、JARファイルを使ってGoogleサーバーに接続します。これらのJARファイルは通常、https://cloud.google.com/bigquery/providers/simba-driversで入手できます。  
インポートブリッジは、必要なドライバーをinto \_Install/data/download/MIMBフォルダー内に自動的にダウンロードします。  
  
このインポートブリッジは、ネイティブJava APIを使い、Simba JDBCドライバーをロードすることによってメタデータを解析します。  
オプションで、このインポートブリッジはデータドリブンのメタデータディスカバリー/データプロファイリングもサポートするため、GoogleからダウンロードしたBigQuery JDBCドライバーを使用します。例:  
data/download/MIMB/com.simba.googlebigquery/jdbc42/SimbaJDBCDriverforGoogleBigQuery42\_1.3.0.1001  
  
下の「権限」セクションをご覧ください。  
  
**認証**  
該当なし  
  
**権限**  
どのインポートブリッジも読み取り専用でメタデータのみ抽出することが保証されています。したがって、このインポートブリッジのユーザーは、データの読み書きを必要とするクラシックユーザーよりもはるかに必要な権限が少ないです。  
  
Google BigQueryデータベースの場合:  
このインポートブリッジは、Google BigQueryデータベースシステムのテーブル(INFORMATION\_SCHEMAなど)を読み取ってメタデータを抽出します。これらのシステムテーブルやその他のテーブルから読み取る必要がある時は、(インポートブリッジではなく)JDBCドライバーがBigQueryジョブを作成します。したがってこのインポートブリッジでは、プロジェクトにBigQueryメタデータビューアーロールとBigQueryジョブユーザーロールの両方が必要です。詳細は、以下のリンクで提供されているドキュメンテーションをご覧ください:  
https://cloud.google.com/bigquery/docs/jobs-概要  
  
このインポートブリッジは、Oauth 2.0プロトコルを使ってGoogleのBigQueryサービスにアクセスします。現在のところ、「サービスアカウントキー」を使った認証をサポートしています。  
認証方式は、JSONまたはP12キーファイルのいずれかをサポートしています。インポートブリッジへのファイルはプライベートキーファイルパラメーターを使って指定できます。P12ファイルはレガシー形式であり、オプションのサービスクライアントIDパラメーターでサービスアカウントIDを指定する必要があります。  
新しいサービスアカウントを作成する場合は、次のリンクのドキュメンテーションをご覧ください。これにより、クライアントIDとブリッジの実行に必要なキーファイルが提供されます。  
https://developers.google.com/bigquery/docs/authorization#service-accounts-server  
  
**よくある質問**  
該当なし  
  
**制限事項**  
現在判明している一般的な制限事項は、http://metaintegration.com/Products/MIMB/MIMBKnownLimitations.htmlか、バンドルされているDocumentation/ReadMe/MIMBKnownLimitations.htmlをご覧ください。  
  
**サポート**  
トラブルシューティングパッケージを次の項目と共に提供してください。  
- デバッグログ(UIまたはconf/conf.propertiesでMIR\_LOG\_LEVEL=6を使って設定可能)  
- 利用できる場合はメタデータバックアップ(技術的理由によりこの共通オプションが実装されていないブリッジがあるものの、[その他]パラメーターで-backupオプションを使って設定可能)

## ブリッジパラメーター

| **パラメーター名** | **説明** | **タイプ** | **値** | **デフォルト** | **範囲** |
| --- | --- | --- | --- | --- | --- |
| **ドライバーの位置** | JDBCドライバーファイルが配置されているファイルディレクトリー値が空(デフォルト)である場合、ブリッジはGoogleサイトからドライバーファイルをダウンロードしようとします。<br><br>デフォルトのドライバークラス名は、com.simba.googlebigquery.jdbc42.DataSourceです。<br><br>指定されたドライバーのクラス名が異なる場合は、Miscellaneousブリッジパラメーターの-driver.classNameオプションを使ってその名前を指定します。 | DIRECTORY |  |  |  |
| **サービスクライアントID** | インポートブリッジ用に作成されたサービスアカウントのクライアントID (<br>xyz@developer.gserviceaccount.comなど)。<br>このアカウントID情報は、P12 キーファイルを使用する時に必要です。 | STRING |  |  |  |
| **プライベートキーファイル** | インポートブリッジ用に作成されたサービスアカウントのプライベートキーファイル。<br>このファイルは、JSONまたはP12形式(ファイル拡張子がJSONまたはP12)であることが必要です。<br>P12はレガシーPKCS #12形式(Public Key Cryptography Standard #12)であり、オプションのサービスクライアントIDパラメーターでサービスアカウントIDを指定する必要があります。<br>Application Default Credentials (ADC)認証戦略を使用する場合は、このパラメーター値を空のままにしておきます。 | ファイル | \*.\* |  |  |
| **Projects** | プロジェクトIDのコンマ/セミコロン区切りリストとして表現されたインポートする完全修飾プロジェクトID。例:<br>mydomain.com:myProject1, mydomain.com:myProject2<br>リストのうち、最初のプロジェクトだけが他のすべてのプロジェクトの認証に使用されます。<br>そのため、最初のプロジェクトを介して提供された認証情報がリストされている他のプロジェクトへのアクセス権を持っていない場合、リストにある一部のプロジェクトがインポートされないことがあります。 | STRING |  |  | 必須 |
| **場所** | 目的のデータセットが配置されているリージョン名のリスト(https://cloud.google.com/bigquery/docs/locationsを参照)。たとえば、asia-northeast1、US、EUなどです。<br>データセットは特定のリージョンにあります。データセットを作成する時は、そのリージョンロケーションを指定することも、デフォルトを使用することもできます。<br>このパラメーターを使えば、場所に応じてデータセットをフィルタリングできます。<br>このパラメーター値はデフォルトでは空になっており、米国マルチリージョンにあるデータセットをインポートするようブリッジに指示します。<br>このオプションはMultiModelモードでのみ動作します。 | STRING |  |  |  |
| **データセット** | インポートするデータセットのサブセット。セミコロンで区切られたデータセット名のリストとして表現されたものです。例:<br>dataset1; dataset2<br><br>リストが空の場合は、データセットがすべてインポートされます。<br><br>SQLのLIKE式構文を使用するデータベース名パターン:<br><br>- 包含構文:<br>%または\*を使用。例:<br>A%; %B; %C%; D<br>- Aで開始、または<br>- Bで終了、または<br>- Cを含む、または<br>- Dに等しい<br><br>- 除外構文:<br>NOTを使用。例:<br>A%; %B; NOT %SYS; NOT 'SYS%'<br>- where (A%のような名前または%Bのような名前)<br>- and (%SYSとは異なる名前)<br>- and ('SYS%'とは異なる名前)<br><br>- 特殊文字:<br>^ $ \* + ? \| \ ( ) [ ] { } 空白<br>この名前を角括弧で囲み、特殊文字をエスケープします。例:<br>OneWord%; [Two\sWords.\*]; [Dollar\$] | REPOSITORY\_SUBSET |  |  |  |
| **ストアドプロシージャーの詳細** | ストアドプロシージャーからインポートされる詳細の量を制御します。<br><br>[シグナチャー]<br>ストアドプロシージャーの名前とパラメーター<br><br>[コード、シグナチャー]<br>上記のプラスコード<br><br>[来歴、コード、シグナチャー]<br>コードから派生した上記のプラスデータ来歴<br><br>[なし]<br>ストアドプロシージャーの詳細は含まれていません。 | ENUMERATED | <table><tr><td>[None] (なし)</td></tr><tr><td>署名</td></tr><tr><td>コード、署名</td></tr><tr><td>来歴、コード、署名</td></tr></table> | 署名 |  |
| **Miscellaneous** | **はじめに**<br>ダッシュで始まるMiscellaneousオプションを指定し、必要であればその後にパラメーターを追加できます。例:<br>- connection.cast MyDatabase1="MICROSOFT SQL SERVER"<br>該当する場合は複数回使用できるオプションもあります。例:<br>- connection.rename NewConnection1=OldConnection1 -connection.rename NewConnection2=OldConnection2;<br>オプションのリストは長い文字列になるため、${MODEL\_BRIDGE\_HOME}\data\MIMB\parametersにあり拡張子が.txtであるファイルからロードすることもできます。その場合、オプションはすべて、このパラメーターの唯一の値としてそのファイル内で定義されることが必要です。例:<br>ETL/Miscellaneous.txt<br><br>**JAVA環境のオプション**<br>**-java.memory &lt;Javaメモリの最大サイズ&gt; (以前の-m)**<br>64ビットJREではデフォルトで1G、またはconf/conf.properties内の設定に従います。例:<br>-java.memory 8G<br>-java.memory 8000M<br><br>**-java.parameters &lt;Javaランタイム環境コマンドラインオプション&gt; (以前の-j)**<br><br>-java.parameters -Dname=value -Xms1G<br>のように、-java.parametersの後ろのテキストはすべてそのままJREに渡されるため、このオプションはMiscellaneousパラメーター内の最後に来る必要があります。インターネットへのアクセスにプロキシを使用している場合は、必要なサードパーティのソフトウェアライブラリーをダウンロードできるよう、次のオプションを設定する必要があります(このオプションはhttps://repo.maven.apache.org/maven2/にアクセスするため、そして例外的にいくつかの他のツールサイトにアクセスするために不可欠です)。<br>注: プロキシは、(会社の)外部トラフィックをHTTPSで暗号化しながら、HTTPでプロキシにアクセスできる内部トラフィックを信頼しているものがほとんどです。この場合、HTTPSリクエストはHTTPでプロキシに到達し、プロキシはそれをHTTPSで暗号化します。<br>-java.parameters -java.parameters -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=3128 -Dhttp.proxyUser=user -Dhttp.proxyPassword=pass<br><br>**モデルインポートのオプション**<br>**-model.name &lt;モデル名&gt;**<br>モデル名をオーバーライドをオーバーライドします。例:<br>-model.name "My Model Name"<br><br>**-prescript &lt;スクリプト名&gt;**<br>このオプションによって、ブリッジの実行前にスクリプトを実行できるようになります。<br>スクリプトはbinディレクトリー(またはconf/conf.propertiesのM\_SCRIPT\_PATHで指定)にあり、拡張子が.batか.shであることが必要です。<br>スクリプトのパスに親ディレクトリーの記号( .. )を含めることはできません。<br>スクリプトは、成功した場合は終了コードである0を、失敗した場合は別の値を返します。<br>例:<br>-prescript "script.bat arg1 arg2"<br><br>**-postscript &lt;スクリプト名&gt;**<br>このオプションによって、ブリッジが正しく実行された後にスクリプトを実行できるようになります。<br>スクリプトはbinディレクトリー(またはconf/conf.propertiesのM\_SCRIPT\_PATHで指定)にあり、拡張子が.batか.shであることが必要です。<br>スクリプトのパスに親ディレクトリーの記号( .. )を含めることはできません。<br>スクリプトは、成功した場合は終了コードである0を、失敗した場合は別の値を返します。<br>例:<br>-postscript "script.bat arg1 arg2"<br><br>**-cache.clear**<br>インポート前にキャッシュをクリアするため、増分収集せずにフルインポートを実行します。<br><br>モデルが変更されず、-cache.clearパラメーターが使われていない場合(増分収集)、新しいバージョンは作成されません。<br>モデルが変更されず、-cache.clearパラメーターが設定されている場合(増分ではなくフルソースインポート)、新しいバージョンが作成されます。<br><br>**-backup &lt;directory&gt;**<br>このオプションによってブリッジ入力メタデータを保存すれば、将来のトラブルシューティングで活用できます。指定された&lt;directory&gt;は空であることが必要です。<br><br>このオプションの主な用途は、データストアインポートブリッジ(特にJDBCベースのデータベースインポートブリッジ)です。<br><br>なお、このオプションは次のようなブリッジでは動作しません。<br>- ファイルベースのインポートブリッジ(入力ファイルで代用可能なため)<br>- DI/BIリポジトリーインポートブリッジ(ツールのリポジトリーネイティブバックアップで代用可能なため)<br>- APIベース(COMベースなど)による一部のインポートブリッジ(技術的な理由のため)<br><br>**データ接続オプション**<br>使用するソースとターゲットのデータストアを参照するよう、通常はETL/DIツールとBIツールのインポートブリッジによってデータ接続が生成されます。これらのデータ接続はメタデータ管理ツールによって実際のデータストア(データベースやファイルシステムなど)への接続(メタデータスティッチング)に使われ、完全なエンドツーエンドのデータフローの来歴とインパクト分析が行われます。各データ接続の名前はインポートモデルごとに一意です。DI/BIデザインツールで使われているデータ接続名を可能な限り使用します。そうでない場合は、データベース/スキーマ名、ファイルシステムのパス、Uniform Resource Identifier (URI)など、短くても意味のある接続名が生成されます。次のオプションを使えば、接続を操作できます。これらのオプションによって、レガシーオプションである-c、-cd、-csが置き換えられます。<br><br>**-connection.cast ConnectionName=ConnectionType**<br>SQL解析のためにジェネリックデータベース接続(ODBCやJDBCなど)を正確なデータベースタイプ(ORACLEなど)にキャストします。例:<br>-connection.cast "My Database"="MICROSOFT SQL SERVER"<br>サポートされているデータストア接続タイプのリストは次のとおりです。<br>ACCESS<br>APACHE CASSANDRA<br>DB2/UDB<br>DENODO<br>GOOGLE BIGQUERY<br>HIVE<br>MYSQL<br>NETEZZA<br>ORACLE<br>POSTGRESQL<br>PRESTO<br>REDSHIFT<br>SALESFORCE<br>SAP HANA<br>SNOWFLAKE<br>MICROSOFT SQL AZURE<br>MICROSOFT SQL SERVER<br>SYBASE SQL SERVER<br>SYBASE AS ENTERPRISE<br>TERADATA<br>VECTORWISE<br>HP VERTICA<br><br>**-connection.rename OldConnection=NewConnection**<br>既存の接続を新しい名前に変更します。例:<br>-connection.rename OldConnectionName=NewConnectionName<br>既存の複数のデータベース接続の名前を変更し、新しい1つのデータベース接続に統合できます。例:<br>-connection.rename MySchema1=MyDatabase -connection.rename MySchema2=MyDatabase<br><br>**-connection.split oldConnection.Schema1=newConnection**<br>データベース接続を1つまたは複数のデータベース接続に分割します。<br>1つのデータベース接続をスキーマごとの1つの接続に分割できます。例:<br>-connection.split MyDatabase<br>すべてのデータベース接続をスキーマごとの1つの接続に分割できます。例:<br>-connection.split \*<br>データベースにスキーマ名を追加することで、データベース接続を明示的に分割し、新しいデータベース接続を作成できます。例:<br>-connection.split MyDatabase.schema1=MySchema1<br><br>**-connection.map SourcePath=DestinationPath**<br>ソースパスをデスティネーションパスにマッピングします。これは、異なるパスが同じオブジェクト(ディレクトリーまたはファイル)をポイントしている場合にファイルシステム接続にとって便利です。<br>Hadoopでは、あるプロセスがHDFSの完全パスで指定されたCSVファイルに書き込む一方、別のプロセスが、デフォルトのファイル名と拡張子を持つ相対パスで指定されている同じファイルによって実装されたHiveテーブル(外部)から読み取ります。例:<br>-connection.map /user1/folder=hdfs://host:8020/users/user1/folder/file.csv<br>Linuxでは、/users/johnや/users/paulといった複数のシンボリックリンクによって、/dataのような特定のディレクトリー(またはファイル)が参照されます。例:<br>-connection.map /data=/users/John -connection.map /data=/users/paul<br>Windowsでは、M:やN:といった複数のネットワークドライブによって、C:\dataのような特定のディレクトリーが参照されます。例:<br>-connection.map C:\data=M:\ -connection.map C:\data=N:\<br><br>**-connection.casesensitive ConnectionName**<br>検出されたデータストアのタイプがこの設定(Microsoft SQL ServerやMySqlなど)をサポートしている場合は、指定された接続内のオブジェクト識別子に対し、大文字と小文字を区別しないデフォルトのマッチングルールがオーバーライドされます。例:<br>-connection.casesensitive "My Database"<br><br>**-connection.level AggregationLevel**<br>外部接続の集計レベルを指定します。例: -connection.level catalog<br>サポートされている値のリスト:<br>server<br>catalog<br>schema (デフォルト)<br><br>**GOOGLE BIGQUERYのオプション**<br>**-s**<br>デフォルトでスキップされるシステムオブジェクトをインポートします。<br><br>**-model.split (以前の-multiModel)**<br>大型サーバーモデルをマルチモデル(つまり1つのモデルに1つのデータベース)に分割します。<br>警告: これはこのインポートブリッジを呼び出すアプリケーションによって管理されるシステムオプションであり、ユーザーが設定するものではありません。<br><br>**-driver.className**<br>JDBCドライバーのインターフェイスを実装するJavaクラスのフルネーム(パッケージ名を含む)。<br><br>**-driver.options "&lt;option declaration&gt;"**<br>JDBCドライバー接続のオプション。JDCBCドライバー接続オプション。選択されたオプションはすべてJDBCドライバー接続文字列に追加されます。<br>例:<br>-driver.options "Timeout=100"<br>-driver.options "AllowLargeResults=1;Timeout=300;LogLevel=1"<br><br>**-driver.url**<br>完全修飾JDBC接続文字列。他のブリッジ接続オプションをオーバーライドします。 | STRING |  |  |  |

## ブリッジのマッピング

| **Meta Integration Repository (MIR)<br>メタモデル<br>(OMG CWM標準に基づく)** | **"Google Cloud BigQuery Database (JDBC経由)"<br>メタモデル<br>Google BigQuery (プロジェクト)** | **マッピングのコメント** |
| --- | --- | --- |
|  |  |  |
| **属性** | **カラム** |  |
| 説明 | 説明 |  |
| ExtraConstraint | 制約 |  |
| InitialValue | 初期値 |  |
| 名前 | 名前 |  |
| NativeId | ネイティブID |  |
| オプション | Null可能 |  |
| PhysicalName | 物理名 |  |
| 位置 | 位置 |  |
| **クラス** | **テーブル、レコード** |  |
| 説明 | 説明 |  |
| 名前 | 名前 |  |
| NativeId | ネイティブID |  |
| PhysicalName | 物理名 |  |
| **ClassDiagram** | **図** |  |
| 説明 | 説明 |  |
| 名前 | 名前 |  |
| **DatabaseSchema** | **[Dataset] (データセット)** |  |
| 説明 | 説明 |  |
| 名前 | 名前 |  |
| NativeId | ネイティブID |  |
| PhysicalName | 物理名 |  |
| **DesignPackage** | **サブジェクトエリア** |  |
| 説明 | 説明 |  |
| 名前 | 名前 |  |
| **結合** | **論理リレーションシップ** |  |
| 説明 | 説明 |  |
| 名前 | 名前 |  |
| **SQLViewAttribute** | **ViewColumn** |  |
| 説明 | 説明 |  |
| InitialValue | 初期値 |  |
| 名前 | 名前 |  |
| NativeId | ネイティブID |  |
| オプション | Null可能 |  |
| PhysicalName | 物理名 |  |
| 位置 | 位置 |  |
| **SQLViewEntity** | **表示** |  |
| 説明 | 説明 |  |
| 名前 | 名前 |  |
| NativeId | ネイティブID |  |
| PhysicalName | 物理名 |  |
| ViewStatement | ステートメントを表示 |  |
| **StoreModel** | **プロジェクト** |  |
| 作成者 | 作成者 |  |
| CreationTime | 作成日時 |  |
| 説明 | 説明 |  |
| ModificationTime | 変更日時 |  |
| 変更者 | 変更者 |  |
| 名前 | 名前 |  |
| NativeId | ネイティブID |  |
| PhysicalName | 物理名 |  |
| StoreType | 保管タイプ |  |
| SystemMajorバージョン | システムのメジャーバージョン |  |
| SystemMinorバージョン | システムのマイナーバージョン |  |
| SystemReleaseバージョン | システムのリリースバージョン |  |
| SystemType | システムタイプ |  |
| SystemTypeOld | システムタイプ(旧) |  |