Azure Data Factory または Synapse Analytics で DB2 からデータをコピーする
[アーティクル] 2023/11/16
16 人の共同作成者
フィードバック
この記事の内容
サポートされる機能
前提条件
作業の開始
UI を使用して DB2 のリンク サービスを作成する
コネクタの構成の詳細
リンクされたサービスのプロパティ
データセットのプロパティ
コピー アクティビティのプロパティ
DB2 のデータ型のマッピング
Lookup アクティビティのプロパティ
関連するコンテンツ
さらに 7 個を表示
適用対象: Azure Data Factory Azure Synapse Analytics
この記事では、Azure Data Factory のコピー アクティビティと Synapse Analytics パイプラインで、DB2 データベースからデータをコピーする方法の概要を説明します。 この記事は、コピー アクティビティの概要を示しているコピー アクティビティの概要 に関する記事に基づいています。
この DB2 コネクタでは、次の機能がサポートされます。
テーブルを展開する
① Azure 統合ランタイム ② セルフホステッド統合ランタイム
コピー アクティビティによってソースまたはシンクとしてサポートされるデータ ストアの一覧については、サポートされるデータ ストア に関する記事の表をご覧ください。
具体的には、この DB2 コネクタでは、分散型リレーショナル データベース アーキテクチャ (DRDA) SQL アクセス マネージャー (SQLAM) バージョン 9、10、および 11 に対応した、次の IBM DB2 のプラットフォームとバージョンがサポートされています。 DDM/DRDA プロトコルが利用されます。
IBM DB2 for z/OS 12.1
IBM DB2 for z/OS 11.1
IBM DB2 for i 7.3
IBM DB2 for i 7.2
IBM DB2 for i 7.1
IBM DB2 for LUW 11
IBM DB2 for LUW 10.5
IBM DB2 for LUW 10.1
データ ストアがオンプレ ミスネットワーク、Azure 仮想ネットワーク、または Amazon Virtual Private Cloud 内にある場合は、それに接続するようセルフホステッド統合ランタイム を構成する必要があります。
データ ストアがマネージド クラウド データ サービスである場合は、Azure Integration Runtime を使用できます。 ファイアウォール規則で承認されている IP にアクセスが制限されている場合は、Azure Integration Runtime の IP を許可リストに追加できます。
また、Azure Data Factory のマネージド仮想ネットワーク統合ランタイム 機能を使用すれば、セルフホステッド統合ランタイムをインストールして構成しなくても、オンプレミス ネットワークにアクセスすることができます。
Data Factory によってサポートされるネットワーク セキュリティ メカニズムやオプションの詳細については、「データ アクセス戦略 」を参照してください。
統合ランタイムには DB2 ドライバーが組み込まれているため、DB2 からデータをコピーするときにドライバーを手動でインストールする必要はありません。
パイプラインでコピー アクティビティを実行するには、次のいずれかのツールまたは SDK を使用します。
UI を使用して DB2 のリンク サービスを作成する
次の手順を使用して、Azure portal UI で DB2 のリンク サービスを作成します。
Azure Data Factory または Synapse ワークスペースの [管理] タブに移動し、[リンクされたサービス] を選択して、[新規] をクリックします。
DB2 を検索し、DB2 コネクタを選択します。
サービスの詳細を構成し、接続をテストして、新しいリンク サービスを作成します。
次のセクションでは、DB2 コネクタに固有の Data Factory エンティティを定義するために使用されるプロパティについて詳しく説明します。
DB2 のリンクされたサービスでは、次のプロパティがサポートされます。
テーブルを展開する
プロパティ
内容
必須
type
type プロパティは、次のように設定する必要があります:Db2
はい
connectionString
DB2 インスタンスに接続するために必要な情報を指定します。 パスワードを Azure Key Vault に格納して、接続文字列から password
構成をプルすることもできます。 詳細については、下記の例と、「Azure Key Vault への資格情報の格納 」の記事を参照してください。
はい
connectVia
データ ストアに接続するために使用される統合ランタイム 。 詳細については、「前提条件 」セクションを参照してください。 指定されていない場合は、既定の Azure 統合ランタイムが使用されます。
いいえ
接続文字列内の一般的なプロパティを次に示します。
テーブルを展開する
プロパティ
内容
必要
server
DB2 サーバーの名前です。 サーバー名に続けて、コロンで区切ってポート番号を指定できます (例: server:port
)。 DB2 コネクタでは、DDM/DRDA プロトコルが利用されます。指定されていない場合、既定でポート 50000 が使用されます。 特定の DB2 データベースが使用するポートは、バージョンと設定によって異なる場合があります。たとえば、DB2 LUW の場合、既定のポートは 50000 です。AS400 の場合、既定のポートは 446 または448 (TLS が有効になっている場合) です。 ポートの一般的な構成方法については、DB2 z/OS 、DB2 iSeries 、DB2 LUW の各ドキュメントをご覧ください。
はい
database
DB2 データベースの名前です。
はい
authenticationType
DB2 データベースへの接続に使用される認証の種類です。 使用可能な値:Basic 。
はい
username
DB2 データベースに接続するユーザー名を指定します。
はい
password
ユーザー名に指定したユーザー アカウントのパスワードを指定します。 このフィールドを SecureString とマークして安全に保存するか、Azure Key Vault に保存されているシークレットを参照 します。
はい
packageCollection
データベースに対するクエリを実行したときに、サービスによって必要なパッケージを自動作成する場所を指定します。 これを設定しない場合、サービスでは {username} を規定値として使用します。
いいえ
certificateCommonName
Secure Sockets Layer (SSL) またはトランスポート層セキュリティ (TLS) 暗号化を使用する場合は、証明書共通名の値を入力する必要があります。
いいえ
ヒント
The package corresponding to an SQL statement execution request was not found. SQLSTATE=51002 SQLCODE=-805
というエラー メッセージが表示された場合は、そのユーザーに必要なパッケージが作成されていません。 既定では、サービスはDB2への接続に使用したユーザー名のコレクションの下にパッケージを作成します。 パッケージ コレクションのプロパティを指定することで、データベースに対するクエリを実行したときに、サービスによって必要なパッケージをどこに作成するかを指定します。 パッケージ コレクション名を特定できない場合は、packageCollection=NULLID
を設定してみてください。
例:
{
"name": "Db2LinkedService",
"properties": {
"type": "Db2",
"typeProperties": {
"connectionString": "server=<server:port>;database=<database>;authenticationType=Basic;username=<username>;password=<password>;packageCollection=<packagecollection>;certificateCommonName=<certname>;"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
例: パスワードを Azure Key Vault に格納する
{
"name": "Db2LinkedService",
"properties": {
"type": "Db2",
"typeProperties": {
"connectionString": "server=<server:port>;database=<database>;authenticationType=Basic;username=<username>;packageCollection=<packagecollection>;certificateCommonName=<certname>;",
"password": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
以下のペイロードで DB2 のリンクされたサービスを使用していた場合、引き続きそのままサポートされますが、今後は新しいものを使用することをお勧めします。
以前のペイロード:
{
"name": "Db2LinkedService",
"properties": {
"type": "Db2",
"typeProperties": {
"server": "<servername:port>",
"database": "<dbname>",
"authenticationType": "Basic",
"username": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
データセットを定義するために使用できるセクションとプロパティの完全な一覧については、データセット に関する記事をご覧ください。 このセクションでは、DB2 データセット でサポートされるプロパティの一覧を示します。
DB2 からのデータ コピーについては、次のプロパティがサポートされています。
テーブルを展開する
プロパティ
内容
必須
type
データセットの type プロパティは、次のように設定する必要があります:Db2Table
はい
schema
スキーマの名前。
いいえ (アクティビティ ソースの "query" が指定されている場合)
table
テーブルの名前。
いいえ (アクティビティ ソースの "query" が指定されている場合)
tableName
スキーマがあるテーブルの名前。 このプロパティは下位互換性のためにサポートされています。 新しいワークロードでは、schema
と table
を使用します。
いいえ (アクティビティ ソースの "query" が指定されている場合)
例
{
"name": "DB2Dataset",
"properties":
{
"type": "Db2Table",
"typeProperties": {},
"schema": [],
"linkedServiceName": {
"referenceName": "<DB2 linked service name>",
"type": "LinkedServiceReference"
}
}
}
RelationalTable
型のデータセットを使用していた場合、現状のまま引き続きサポートされますが、今後は新しいものを使用することをお勧めします。
アクティビティの定義に利用できるセクションとプロパティの完全な一覧については、パイプライン に関する記事を参照してください。 このセクションでは、DB2 ソースでサポートされるプロパティの一覧を示します。
DB2 からデータをコピーするために、コピー アクティビティの source セクションでは次のプロパティがサポートされています。
テーブルを展開する
プロパティ
内容
必須
type
コピー アクティビティのソースの type プロパティは、次のように設定する必要があります:Db2Source
はい
query
カスタム SQL クエリを使用してデータを読み取ります。 (例: "query": "SELECT * FROM \"DB2ADMIN\".\"Customers\""
)。
いいえ (データセットの "tableName" が指定されている場合)
例:
"activities":[
{
"name": "CopyFromDB2",
"type": "Copy",
"inputs": [
{
"referenceName": "<DB2 input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "Db2Source",
"query": "SELECT * FROM \"DB2ADMIN\".\"Customers\""
},
"sink": {
"type": "<sink type>"
}
}
}
]
RelationalSource
型のソースを使用していた場合は現状のまま引き続きサポートされますが、今後は新しいものを使用することをお勧めします。
DB2 からデータをコピーするときは、DB2 のデータ型からサービスでの内的処理に使用する暫定データ型への、次のマッピングを使用します。 コピー アクティビティでソースのスキーマとデータ型がシンクにマッピングされるしくみについては、スキーマとデータ型のマッピング に関する記事を参照してください。
テーブルを展開する
DB2 データベース型
中間サービス データ型
BigInt
Int64
Binary
Byte[]
BLOB
Byte[]
Char
String
Clob
String
Date
Datetime
DB2DynArray
String
DbClob
String
Decimal
Decimal
DecimalFloat
Decimal
Double
Double
Float
Double
Graphic
String
Integer
Int32
LongVarBinary
Byte[]
LongVarChar
String
LongVarGraphic
String
数値
Decimal
Real
Single
SmallInt
Int16
Time
TimeSpan
Timestamp
DateTime
VarBinary
Byte[]
VarChar
String
VarGraphic
String
xml
Byte[]
プロパティの詳細については、Lookup アクティビティ に関するページを参照してください。
Copy アクティビティでソースおよびシンクとしてサポートされるデータ ストアの一覧については、サポートされるデータ ストア に関するセクションを参照してください。