# Snowflake Access History (DI/ETL) - ベータ版 - インポート

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/ やその他のツールサイトへのインターネットアクセスが必要です。

## ブリッジの仕様

| **ベンダー** | **Snowflake** |
| --- | --- |
| **ツール名** | **Snowflakeデータベース** |
| **ツールバージョン** | **1〜最新バージョン** |
| **ツールのWebサイト** | https://docs.snowflake.com/en/user-guide/access-history (英語のみ) |
| **サポートされている方法論** | [データ統合] マルチモデル、データストア(物理データモデル、論理データモデル、ストアドプロシージャー式解析)、ETL (ソースとターゲットのデータストア、変換来歴、解析)、JDBC API経由のグラフィカルレイアウト |
| **データプロファイリング** | ![](https://help.qlik.com/talend/ja-JP/talend-data-catalog/8.1/Content/Resources/images/cross.png) |
| **増分収集** | ![](https://help.qlik.com/talend/ja-JP/talend-data-catalog/8.1/Content/Resources/images/cross.png) |
| **マルチモデル収集** | ![](https://help.qlik.com/talend/ja-JP/talend-data-catalog/8.1/Content/Resources/images/tick.png) |
| **モデル選択のためのリモートリポジトリーの参照** | ![](https://help.qlik.com/talend/ja-JP/talend-data-catalog/8.1/Content/Resources/images/tick.png) |

**仕様**  
**ツール:** JDBC API経由のSnowflake / Snowflake 1〜最新バージョン  
https://docs.snowflake.com/en/user-guide/access-historyをご覧ください。  
**メタデータ:** [データ統合] マルチモデル、データストア(物理データモデル、論理データモデル、ストアドプロシージャー式解析)、ETL (ソースとターゲットのデータソース、変換来歴、式解析)、グラフィカルレイアウト  
**コンポーネント:** SnowflakeAccessHistoryバージョン11.2.0  
  
**免責事項**  
このインポートブリッジでは、インターネットに接続して次のサードパーティライブラリーをダウンロードする必要があります:  
- オープンソースのサードパーティライブラリーをダウンロードする場合はhttps://repo.maven.apache.org/maven2/など  
- その他のサードパーティソフトウェア(データベース特定のJDBCドライバーなど)は該当するサイトへ  
  
ダウンロードされたサードパーティライブラリーは、$HOME/data/download/MIMB/ に格納されています。  
HTTPS が失敗した場合、インポートブリッジは HTTP を試します。  
- インターネットへのアクセスにプロキシを使用している場合は、JREでそのプロキシを設定する必要があります(Miscellaneousパラメーターで -java.parametersオプションをご覧ください)。  
- インポートブリッジではインターネットにフルにアクセスできない場合は、インターネットアクセスがある別のサーバーから$HOME/data/download/MIMB/ディレクトリーをコピーします。$HOME/bin/MIMB.sh (または.bat) -dというコマンドを使えば、すべてのブリッジで使用される全サードパーティライブラリーを一度にダウンロードできます。  
  
このインポートブリッジを実行すると、ライセンス規約の責任、およびダウンロードしたサードパーティソフトウェアライブラリーによって生じる潜在的なセキュリティの脆弱性を受け入れることになります。  
  
**概要**  
このインポートブリッジは、SnowflakeデータベースサーバーへのJDBC接続を使ってその全メタデータ(データベース、スキーマ、テーブル、外部テーブル、カラム、データ型など)を抽出し、SQL (ビュー、マテリアライズドビュー、ストアドプロシージャーなど)を解析してデータフロー来歴を生成します。  
  
このインポートブリッジの推奨用途は、Snowflakeデータベース(JDBC経由)ブリッジがインポートしなかった来歴メタデータをインポートすることです。たとえば動的SQLでは、以下の方法でクエリーをフィルタリングできます:  
- User (ユーザー)  
- Date (開始日、終了日)  
- Object (変更されたデータベースオブジェクト、アクセスされたデータベースオブジェクト)  
  
このインポートブリッジは、スキーマごとに1つのモデルを使い、データベースサーバーのメタデータをマルチモデルとしてインポートします。追加のインポート(増分収集)では、スキーマ内の変更が検出され、変更されたスキーマのみがインポートされます(収集済みで変更のないスキーマを再利用)。  
  
**要件**  
サポートされている最低限のデータベースバージョンは8.4です。  
  
JDBCドライバーの要件については、[ドライバーの位置]パラメーターをご覧ください。  
  
下の「権限」セクションをご覧ください。  
  
**認証**  
該当なし  
  
**権限**  
どのインポートブリッジも読み取り専用でメタデータのみ抽出することが保証されています。したがって、このインポートブリッジのユーザーは、データの読み書きを必要とするクラシックユーザーよりもはるかに必要な権限が少ないです。  
  
Snowflakeデータベースの場合:  
このインポートブリッジでは、すべてのウェアハウス、データベース、スキーマ、スキーマオブジェクトの参照(インポートしたいテーブルやビューなど)に対してUSAGE権限が付与されたロールをユーザーが持っている必要があります。  
  
インポートブリッジは、ユーザー/パスワード認証またはキー/ペア認証のいずれかをサポートします。キー/ペア認証を使用するためには、[プライベートキーファイル]、[パスワード]、[ユーザー]という各パラメーターを設定する必要があります。  
キー/ペア認証の使用方法については、以下のリンクのドキュメンテーションをご覧ください。  
https://docs.snowflake.com/en/user-guide/key-pair-auth  
  
**よくある質問**  
**Q: このインポートブリッジは、テーブル、ビュー、静的ストアドプロシージャーの来歴をインポートして解析できますか?**  
A: 上述のオブジェクトのインポートは、「変更されたデータベースオブジェクト」(デスティネーション)パラメーターと「アクセスされたデータベースオブジェクト」(ソース)パラメーターを利用して管理できます。  
  
**制限事項**  
現在判明している一般的な制限事項は、https://metaintegration.com/Products/MIMB/Help/#!Documents/mimbknownlimitations.htmlをご覧ください。  
  
**サポート**  
トラブルシューティングパッケージを次の項目と共に提供してください:  
- デバッグログ(UIまたはconf/conf.propertiesでMIR\_LOG\_LEVEL=6を使って設定可能)  
- 利用できる場合はメタデータバックアップ(技術的理由によりこの共通オプションが実装されていないブリッジがあるものの、Miscellaneousパラメーターで-backupオプションを使って設定可能)

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

| **パラメーター名** | **説明** | **タイプ** | **値** | **デフォルト** | **スコープ** |
| --- | --- | --- | --- | --- | --- |
| **ドライバーの位置** | JDBCドライバーファイルが配置されているファイルディレクトリー値が空(デフォルト)である場合、ブリッジはMavenからドライバーファイルをダウンロードしようとします。<br><br>デフォルトのドライバークラス名はnet.snowflake.client.jdbc.SnowflakeDriverです。<br><br>指定されたドライバーのクラス名が異なる場合は、Miscellaneousブリッジパラメーターの-driver.classNameオプションを使ってその名前を指定します。 | DIRECTORY |  |  |  |
| **ホスト** | データベースサーバー(デフォルトではローカルホスト)に接続するためにJDBCによって使用されるホスト名。例:<br><br>MyDatabaseServer.com<br><br>またはそのIPアドレス。例:<br><br>192.169.1.2<br><br>またはその完全修飾JDBC接続文字列。例:<br><br>jdbc:snowflake://xyz.snowflakecomputing.com/?warehouse=mywh&db=mydb | STRING |  | localhost | 必須 |
| **ウェアハウス** | インポートするウェアハウスインスタンスの名前。 | STRING |  |  |  |
| **ユーザー** | データベースサーバーに接続するためにJDBCが使用するユーザー名。<br><br>ユーザー名が含まれている完全修飾JDBC接続文字列に[ホスト]パラメーターが基づいている場合、このパラメーターは無視されます。<br><br>このインポートブリッジのメインドキュメンテーションで「権限」のセクションをご覧ください。 | STRING |  |  | 必須 |
| **パスワード** | データベースサーバーに接続するためにJDBCが使用するユーザーパスワード。 | パスワード |  |  | 必須 |
| **プライベートキーファイル** | キー/ペア認証用のプライベートキーファイル。<br>ユーザー/パスワード認証ストラテジーを使用する場合は、このパラメーター値を空のままにしておきます。 | ファイル | \*.\* |  |  |
| **ユーザー** | インポートしたいクエリーを実行したデータベースユーザーのリスト。全ユーザーのクエリー来歴をインポートする場合は、このパラメーターを空にします(フィルタリングは行われません）。<br><br>このインポートブリッジのメインドキュメンテーションで「権限」のセクションをご覧ください。 | STRING |  |  |  |
| **開始日** | この時間より前に開始されたクエリーの来歴をインポートします。空の場合、時間の下限はありません。<br>日付の形式は年-月-日です。<br><br>このインポートブリッジのメインドキュメンテーションで「権限」のセクションをご覧ください。 | 日付 |  |  |  |
| **終了日** | この時間の後に開始されたクエリーの来歴をインポートします。空の場合、時間の上限はありません。<br>日付の形式は年-月-日です。<br><br>このインポートブリッジのメインドキュメンテーションで「権限」のセクションをご覧ください。 | 日付 |  |  |  |
| **変更されたデータベースオブジェクト** | インポートする変更済みオブジェクトのサブセットを、テーブルやビューなど、スキーマ内のオブジェクトのセミコロン区切りリストとして表します。例:<br>table1; table2; view1;<br><br>このパラメーターは、[データベース.][スキーマ.]テーブル.注釈と\*ワイルドカードの組み合わせもサポートしているので、インポートするオブジェクトのグループを指定できます。例:<br>database1.schema1.table1; database1.\*.table2; database1.schema3.\*;<br>オブジェクトフィルターは大文字と小文字を区別しません。<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\$]<br><br><br>このインポートブリッジのメインドキュメンテーションで「権限」のセクションをご覧ください。 | STRING |  |  |  |
| **アクセスされたデータベースオブジェクト** | インポートするアクセス済みオブジェクトのサブセットを、テーブル、ビュー、ストアドプロシージャーなど、スキーマ内のオブジェクトのセミコロン区切りリストとして表します。例:<br>table1; table2; view1; storedprocedure1<br><br>このパラメーターは、[データベース.][スキーマ.]テーブル.注釈と\*ワイルドカードの組み合わせもサポートしているので、インポートするオブジェクトのグループを指定できます。例:<br>database1.schema1.table1; database1.\*.table2; database1.schema3.\*;<br>オブジェクトフィルターは大文字と小文字を区別しません。<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\$]<br><br><br>このインポートブリッジのメインドキュメンテーションで「権限」のセクションをご覧ください。 | STRING |  |  |  |
| **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>**-restore &lt;ディレクトリー&gt;**<br>復元するバックアップ&lt;ディレクトリー&gt;を指定します。<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.caseinsensitive ConnectionName...**<br>検出されたデータストアのタイプがこの設定(Microsoft SQL ServerやMySqlなど)をサポートしている場合は、指定された接続内のオブジェクト識別子に対し、大文字と小文字を区別するデフォルトのマッチングルールがオーバーライドされます。例:<br>-connection.caseinsensitive "My Database"<br><br>**-connection.level AggregationLevel**<br>外部接続の集計レベルを指定します。例: -connection.level catalog<br>サポートされている値のリスト:<br>server<br>catalog<br>schema (デフォルト)<br><br>**JDBCデータベースのオプション**<br>**-system.objects.import (以前の-s)**<br>(デフォルトでスキップされる)システムオブジェクトをすべてインポートします。<br><br>**-synonyms.ignore (以前の-synonyms)**<br>インポート中にシノニムを無視します。これにより、シノニムが多数存在する場合はモデルのサイズが縮小されます。<br><br>**-data.dictionary.server &lt;データベース識別名&gt; (以前の-server.name)**<br>テーブルの抽出および定義の表示に使うデータディクショナリーのサーバー名を設定します。<br>マルチテナントコンテナーデータベース(CDB)の場合、データディクショナリーテーブルとビュー定義のメタデータはルートレベルにのみ保存されます。ただし、各プラグ可能データベース(PDB)には、PDBに含まれているデータベースオブジェクトに関するデータディクショナリーテーブルとビューの独自のセットが存在します。dba\_viewsによっては、適用不可のため使用できないものもあります。<br><br>**-driver.fetch.size &lt;行数&gt; (以前は-f)**<br>行数におけるデータベースドライバーのフェッチサイズ。例:<br>-driver.fetch.size 100<br><br>**-model.split (以前の-multiModel)**<br>大型データベースモデルをマルチモデル(例: モデルごとに1つのスキーマ)に分割します。<br>警告: これはこのインポートブリッジを呼び出すアプリケーションによって管理されるシステムオプションであり、ユーザーが設定するものではありません。<br><br>**-driver.className**<br>JDBCドライバーのインターフェイスを実装するJavaクラスのフルネーム(パッケージ名を含む)。<br><br>**-disable component...**<br>指定されたメタデータ読み込みコンポーネント(例: property、classifier、feature、stored\_proc、stored\_proc\_arg、trigger、primary\_key、foreign\_key、index、public\_synonym、private\_synonym、view\_proc\_code、sequence、constraint)を無効にします。<br><br><br>**-describe.function**<br>ファンクションの定義を一括で取得する権限を持たないユーザーのために、DESCRIBE FUNCTIONコマンドを使ってそのようなファンクション定義を抽出します。ファンクションが多いとインポートが遅くなることがあります。<br><br>**-external\_tables**<br>external\_tablesというシステムビューを使って外部テーブルのメタデータを抽出<br><br>**-show.columns**<br>カラムのメタデータを一括で取得する権限を持たないユーザーのために、SHOW COLUMNSコマンドを使ってカラムのメタデータを抽出します。スキーマが多いとインポートが遅くなることがあります。 | STRING |  |  |  |

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

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