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

Microsoft Azure Synapse Analytics (SQL Data Warehouse) (JDBC経由) - インポート

Availability-note AWS

ブリッジの要件

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

ブリッジの仕様

ベンダー Microsoft
ツール名 Azure Synapse Analytics (SQL Data Warehouse)
ツールバージョン 12.x以降
ツールのWebサイト https://azure.microsoft.com/en-us/services/sql-data-warehouse/
サポートされている方法論 [リレーショナルデータベース] マルチモデル、JDBC API経由のデータストア(物理データモデル、ストアドプロシージャー式解析)
データプロファイリング
増分収集
マルチモデル収集
モデル選択のためのリモートリポジトリーの参照

仕様
ツール: JDBC API経由のMicrosoft / Azure Synapse Analytics (SQL Data Warehouse)バージョン12.x以降
https://azure.microsoft.com/en-us/services/sql-data-warehouse/をご覧ください。
メタデータ: [リレーショナルデータベース] マルチモデル、データストア(物理データモデル、ストアドプロシージャー式解析)
コンポーネント: JdbcMicrosoftAzureSqlDataWarehouseバージョン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というコマンドを使えば、すべてのブリッジで使用される全サードパーティライブラリーを一度にダウンロードできます。

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

概要
このインポートブリッジは、Microsoft Azure SQL Data WarehouseデータベースサーバーへのJDBC接続を使ってそのメタデータ(スキーマ、テーブル、カラム、データ型など)をすべて抽出し、SQL (ビュー、ストアドプロシージャーなど)を解析してデータフロー来歴を生成します。

このインポートブリッジは、スキーマごとに1つのモデルを使い、データベースサーバーのメタデータをマルチモデルとしてインポートします。追加のインポート(増分収集)では、スキーマ内の変更が検出され、変更されたスキーマのみがインポートされます(収集済みで変更のないスキーマを再利用)。

要件
JDBCドライバーの要件については、[ドライバーの位置]パラメーターをご覧ください。
ユーザー権限の要件については、[ユーザー]パラメーターをご覧ください。

よくある質問
Q: Windowsでの統合認証と接続する方法は?
A: ホストパラメーターで指定するJDBC URLには、[integratedSecurity=true]、またはお使いの設定で必要とされるその他の設定が含まれている必要があります
さらに、«driver location»値が空の場合(デフォルト)、ブリッジはMavenからmssql-jdbc_auth-<version>-<arch>.dllというドライバーファイルをダウンロードしようとします。
それ以外の場合は、docs.microsoft.comの説明に従い、Miscellaneousオプションを使って必要なファイルのパスを指定します。
-Djava.library.path=C:\Microsoft JDBC driver 6.4 for SQL Server\sqljdbc_<バージョン>\enu\auth\x86
https://docs.microsoft.com/en-us/sql/connect/jdbc/building-the-connection-url?view=sql-server-2017#Connectingintegrated

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

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


ブリッジパラメーター

パラメーター名 説明 タイプ デフォルト 範囲
ドライバーの位置 JDBCドライバーファイルが配置されているファイルディレクトリー値が空(デフォルト)である場合、ブリッジはMavenからドライバーファイルをダウンロードしようとします。

デフォルトのドライバークラス名はcom.microsoft.sqlserver.jdbc.SQLServerDriverです。

指定されたドライバーのクラス名が異なる場合は、Miscellaneousブリッジパラメーターの-driver.classNameオプションを使ってその名前を指定します。
DIRECTORY      
ホスト データベースサーバー(デフォルトではローカルホスト)に接続するためにJDBCによって使用されるホスト名。例:
MyDatabaseServer.com

、またはそのIPアドレス。例:
192.169.1.2

指定されたホストURL内のセミコロンとフォワードスラッシュの配置に細心の注意を払ってください。

、またはその完全修飾JDBC接続文字列。
例: jdbc:sqlserver://192.168.56.61:1433;databaseName=AdventureWorksDW;integratedSecurity=false;

encrypt=trueと指定された場合、Azure SQL DatabaseはhostNameInCertificateを必要とします。例: jdbc:sqlserver://abc.database.windows.net:1433;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;

Windows統合セキュリティを使用する場合:
- ホスト名のみを使用する場合は統合セキュリティ機能は使用されず、ドライバーは[ユーザー]と[パスワード]を必要とします。
- 統合セキュリティをオンにしてJDBC URLを使用する場合、[ユーザー]と[パスワード]は使用されず(空白のままにしておく必要があります)、ドライバーはSSLを使用するよう自動的に切り替わります。
STRING   localhost 必須
ポート データベースサーバーに接続するためにJDBCによって使用されるポート(Microsoft SQL Serverではデフォルトで1433)。
ポートが含まれている完全修飾JDBC接続文字列に[ホスト]パラメーターが基づいている場合、このパラメーターは無視されます。

Microsoft SQL Serverデータベースの場合:
最適な接続パフォーマンスを得るには、名前付きインスタンスに接続する時に[ポート]オプションを設定する必要があります。
これにより、ポート番号を決定するために行われるサーバーへのラウンドトリップを防ぐことができます。
[ポート]オプションと[インスタンス]オプションの両方が使用されている場合は[ポート]オプションが優先され、[インスタンス]オプションは無視されます。
数値      
Instance (インスタンス) SQL Serverのインスタンス名。

SQL Serverでは、サーバーごとに複数のデータベースインスタンスをインストールできます。
各インスタンスは特定の名前によって識別されます。
SQL Serverのネームドインスタンスに接続するためには、ネームドインスタンスのポート番号を指定する(推奨)か、
インスタンス名を指定します。
STRING      
ユーザー データベースサーバーに接続するためにJDBCが使用するユーザー名。

ユーザー名が含まれている完全修飾JDBC接続文字列に[ホスト]パラメーターが基づいている場合、このパラメーターは無視されます。

このインポートブリッジのメインドキュメンテーションで「権限」のセクションをご覧ください。

また、Microsoft SQL Server固有のブリッジでは、このパラメーターが空であればインテグレーションセキュリティが使用されているものと想定されます(http://msdn.microsoft.com/ja-jp/library/ms378428.aspx#Connectingintegratedをご覧ください。)。この場合、インポートブリッジは接続に使うタイプの署名は次のとおりです。次のタイプを使用:

jdbc:sqlserver://; integratedSecurity=true
次のタイプは使用しません:

jdbc:sqlserver://; user=userid;password=userpassword

ただし、これが動作するよう、ユーザーはPATH環境変数でsqljdbc_auth.dllを利用できるようにしておく必要があります。また、ライブラリーのバージョンはそのユーザーが使用しているsqljdbc4.jarのバージョンと一致していることが必要です。

Windows統合セキュリティを使用する場合:
- ホスト名のみを使用する場合は統合セキュリティ機能は使用されず、ドライバーは[ユーザー]と[パスワード]を必要とします。
- 統合セキュリティをオンにしてJDBC URLを使用する場合、[ユーザー]と[パスワード]は使用されず(空白のままにしておく必要があります)、ドライバーはSSLを使用するよう自動的に切り替わります。
STRING      
パスワード データベースサーバーに接続するためにJDBCが使用するユーザーパスワード。 パスワード      
データベース インポートするデータベースインスタンスのサブセット。コンマ( , )、またはセミコロン( ; )で区切られたデータベース名のリストとして表現されたものです。例:
database1; database2

リストが空の場合は、データベースインスタンスがすべてインポートされます。

SQLのLIKEパターンを使えばデータベース名を特定できます。詳細は、スキーマパラメーターのドキュメンテーションをご覧ください。
REPOSITORY_SUBSET      
スキーマ インポートするスキーマのサブセットを、スキーマ名のセミコロン区切りリストとして表します。例:
schema1; schema2

このパラメーターは、.注釈と*ワイルドカードの組み合わせもサポートしているので、インポートするオブジェクトのグループの仕様を指定できます。例:
database1.schema1; database2.*;

このリストが空の場合、アクセス可能なユーザースキーマがすべてインポートされます。

デフォルトでは、システムスキーマ(例: SysAdmin)とオブジェクトがすべて無視されます。システムスキーマが必要である場合は、Miscellaneousパラメーターオプションである-system.objects.importを使用します。

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\sWords.*]; [Dollar\$]
REPOSITORY_SUBSET      
テーブル インポートする「テーブル」のサブセットを、テーブル、ビュー、ファンクションなど、スキーマ内のオブジェクトのセミコロン区切りリストとして表します。例:
table1; table2; view1; function1

このパラメーターは、[データベース.][スキーマ.]テーブル.注釈と*ワイルドカードの組み合わせもサポートしているので、インポートするオブジェクトのグループを指定できます。例:
database1.schema1.table1; database1.*.table2; database1.schema3.*;

このリストが空の場合、ブリッジがサポートするユーザーオブジェクトがすべてインポートされます。

デフォルトでは、システムテーブル(例: SysAdmin)とオブジェクトがすべて無視されます。システムテーブルが必要である場合は、Miscellaneousパラメーターオプションである-system.objects.importを使用します。

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\sWords.*]; [Dollar\$]
STRING      
ストアドプロシージャーの詳細 ストアドプロシージャーからインポートされる詳細の量を制御します。

[シグナチャー]
ストアドプロシージャーの名前とパラメーター

[コード、シグナチャー]
上記のプラスコード

[来歴、コード、シグナチャー]
コードから派生した上記のプラスデータ来歴

[なし]
ストアドプロシージャーの詳細は含まれていません。
ENUMERATED
[None] (なし)
署名
コード、署名
来歴、コード、署名
署名  
インデックスをインポート インデックスのインポートを制御します。

'False'
インデックスはインポートされません

'True'
インデックスはインポートされます
BOOLEAN
False
True
False  
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 (デフォルト)

JDBCデータベースのオプション
-system.objects.import (以前の-s)

(デフォルトでスキップされる)システムオブジェクトをすべてインポートします。

-synonyms.ignore (以前の-synonyms)

インポート中にシノニムを無視します。これにより、シノニムが多数存在する場合はモデルのサイズが縮小されます。

-data.dictionary.server <データベース識別名> (以前の-server.name)

テーブルの抽出および定義の表示に使うデータディクショナリーのサーバー名を設定します。
マルチテナントコンテナーデータベース(CDB)の場合、データディクショナリーテーブルとビュー定義のメタデータはルートレベルにのみ保存されます。ただし、各プラグ可能データベース(PDB)には、PDBに含まれているデータベースオブジェクトに関するデータディクショナリーテーブルとビューの独自のセットが存在します。dba_viewsによっては、適用不可のため使用できないものもあります。

-driver.fetch.size <行数> (以前の-f)

行数におけるデータベースドライバーのフェッチサイズ。例:
-driver.fetch.size 100

-model.split (以前の-multiModel)

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

-driver.className

JDBCドライバーのインターフェイスを実装するJavaクラスのフルネーム(パッケージ名を含む)。

-comment.udp

コメントプロパティの代わりに、指定された名前を持つユーザー定義プロパティとしてデータベースオブジェクトコメントをすべてインポートします。
STRING      

 

ブリッジのマッピング

Meta Integration Repository (MIR)
メタモデル
(OMG CWM標準に基づく)
"Microsoft Azure Synapse Analytics (SQL Data Warehouse) (JDBC経由)"
メタモデル
Jdbc
マッピングのコメント
     
名前 名前  
属性 テーブルカラム  
コメント カラムへのコメント JDBCドライバーがサポートしている場合
InitialValue デフォルト値  
名前 名前  
オプション Null可能なプロパティに基づく Accessデータベースの場合は属性が一意のインデックスにある場合のみFalseに設定
PhysicalName 名前  
位置 位置 位置が指定されていない場合は属性の取得順序が使用されます。
BaseType タイプ  
データ型 データ型 データ型変換配列をご覧ください。
長さ サイズ  
名前   名前はデータ型から計算されます
PhysicalName 名前  
スケール 最大スケール  
クラス テーブル TABLEタイプ
コメント テーブルへのコメント JDBCドライバーがサポートしている場合
CppClassType   ENTITYに設定
CppPersistent   Trueに設定
名前 名前  
PhysicalName 名前  
ClassDiagram スキーマ パッケージごとにクラス図が作成され、パッケージのエレメントがすべて含まれます
DerivedType カラム テーブルカラム、ストアドプロシージャーカラムSQL Viewカラムまたはタイプ
データ型 データ型 データ型変換配列をご覧ください。
長さ サイズ  
名前   名前はデータ型から計算されます
PhysicalName 名前  
スケール 10進数  
UserDefined   タイプの場合はTrue
DesignPackage スキーマ 取得されたスキーマごとにパッケージが作成されます。スキーマがない場合はデフォルトのパッケージが作成されます。
名前 名前 スキーマがない場合、またはスキーマに名前がない場合は、[スキーマ]に設定されます。
SQLViewAttribute カラムを表示  
コメント カラムへのコメント JDBCドライバーがサポートしている場合
名前 名前  
PhysicalName 名前  
位置 序数位置  
SQLViewEntity テーブル [ビュー]タイプ
コメント テーブルへのコメント JDBCドライバーがサポートしている場合
名前 名前  
PhysicalName 名前  
StoreModel カタログ カタログに含まれているエレメント(MS SQL Serverのデータベースなど)を使ってモデルがビルドされます。
名前 名前 カタログに名前がない場合は、[カタログ]に設定されます。
シノニム テーブルのシノニム JDBCドライバーがサポートしている場合
名前 名前  

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

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