Azure Data Factory または Azure Synapse Analytics を使用して Microsoft Fabric ウェアハウスでデータをコピーおよび変換する
適用対象: Azure Data Factory
Azure Synapse Analytics
ヒント
企業向けのオールインワン分析ソリューション、Microsoft Fabric の Data Factory をお試しください。 Microsoft Fabric は、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新しい試用版を開始する方法について説明します。
この記事では、Copy アクティビティを使って、Microsoft Fabric ウェアハウスとの間でデータをコピーする方法について説明します。 詳細については、Azure Data Factory または Azure Synapse Analytics の概要記事を参照してください。
サポートされる機能
この Microsoft Fabric ウェアハウス コネクタは、次の機能についてサポートされています。
サポートされる機能 | IR | マネージド プライベート エンドポイント |
---|---|---|
Copy アクティビティ (ソース/シンク) | ① ② | ✓ |
Lookup アクティビティ | ① ② | ✓ |
GetMetadata アクティビティ | ① ② | ✓ |
スクリプト活動 | ① ② | ✓ |
ストアド プロシージャ アクティビティ | ① ② | ✓ |
① Azure 統合ランタイム ② セルフホステッド統合ランタイム
はじめに
パイプラインでコピー アクティビティを実行するには、次のいずれかのツールまたは SDK を使用します。
UI を使って Microsoft Fabric ウェアハウスのリンク サービスを作成する
Azure portal UI で Microsoft Fabric ウェアハウスのリンク サービスを作成するには、次の手順のようにします。
Azure Data Factory または Synapse ワークスペースの [管理] タブに移動し、[リンク サービス] を選択して、[新規] を選択します。
ウェアハウスを検索してコネクタを選びます。
サービスの詳細を構成し、接続をテストして、新しいリンク サービスを作成します。
コネクタの構成の詳細
次のセクションでは、Microsoft Fabric ウェアハウスに固有の Data Factory エンティティを定義するために使われるプロパティについて詳しく説明します。
リンクされたサービス プロパティ
Microsoft Fabric ウェアハウス コネクタでは、次の認証の種類がサポートされています。 詳細については、対応するセクションをご覧ください。
サービス プリンシパルの認証
サービス プリンシパル認証を使用するには、次の手順に従います。
Microsoft ID プラットフォームにアプリケーションを登録し、クライアント シークレットを追加します。 その後、これらの値を記録しておきます。リンクされたサービスを定義するときに使います。
- アプリケーション (クライアント) ID。リンク サービスのサービス プリンシパル ID です。
- クライアント シークレット値。リンク サービスのサービス プリンシパル キーです。
- テナント ID
Microsoft Fabric ワークスペースで、サービス プリンシパルに少なくとも共同作成者ロールを付与します。 次の手順のようにします。
自分の Microsoft Fabric ワークスペースに移動し、上部のバーにある [アクセスの管理] を選びます。 次に、[ユーザーまたはグループの追加] を選びます。
[ユーザーの追加] ペインで、ご利用のサービス プリンシパル名を入力し、ドロップダウン リストから、該当するサービス プリンシパルを選びます。
ロールとして共同作成者以上 (管理者、メンバー) を指定してから、[追加] を選びます。
[アクセスの管理] ペイン上にサービス プリンシパルが表示されます。
リンクされたサービスでは、次のプロパティがサポートされています。
プロパティ | 内容 | 必須 |
---|---|---|
type | type プロパティは、Warehouse に設定する必要があります。 | はい |
endpoint | Microsoft Fabric ウェアハウス サーバーのエンドポイント。 | はい |
workspaceId | Microsoft Fabric ワークスペース ID。 | はい |
artifactId | Microsoft Fabric ウェアハウスのオブジェクト ID。 | はい |
tenant | アプリケーションが存在するテナントの情報 (ドメイン名またはテナント ID) を指定します。 これは、Azure portal の右上隅をマウスでポイントすることで取得できます。 | はい |
servicePrincipalId | アプリケーションのクライアント ID を取得します。 | はい |
servicePrincipalCredentialType | サービス プリンシパル認証に使用する資格情報の種類。 使用できる値は ServicePrincipalKey と ServicePrincipalCert です。 | Yes |
servicePrincipalCredential | サービス プリンシパルの資格情報。 資格情報の種類として ServicePrincipalKey を使用する場合は、アプリケーションのクライアント シークレット値を指定します。 このフィールドを SecureString とマークして安全に保存するか、Azure Key Vault に保存されているシークレットを参照します。 資格情報として ServicePrincipalCert を使用する場合は、Azure Key Vault 内の証明書を参照し、証明書のコンテンツ タイプが PKCS #12 であることを確認します。 |
はい |
connectVia | データ ストアに接続するために使用される統合ランタイム。 データ ストアがプライベート ネットワーク内にある場合、Azure Integration Runtime またはセルフホステッド統合ランタイムを使用できます。 指定されていない場合は、既定の Azure Integration Runtime が使用されます。 | いいえ |
例: サービス プリンシパル キー認証の使用
サービス プリンシパル キーを Azure Key Vault に格納することもできます。
{
"name": "MicrosoftFabricWarehouseLinkedService",
"properties": {
"type": "Warehouse",
"typeProperties": {
"endpoint": "<Microsoft Fabric Warehouse server endpoint>",
"workspaceId": "<Microsoft Fabric workspace ID>",
"artifactId": "<Microsoft Fabric Warehouse object ID>",
"tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>",
"servicePrincipalId": "<service principal id>",
"servicePrincipalCredentialType": "ServicePrincipalKey",
"servicePrincipalCredential": {
"type": "SecureString",
"value": "<service principal key>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
データセットのプロパティ
データセットを定義するために使用できるセクションとプロパティの完全な一覧については、データセットに関する記事をご覧ください。
Microsoft Fabric ウェアハウス データセットでは、次のプロパティがサポートされています。
プロパティ | 内容 | 必須 |
---|---|---|
type | データセットの type プロパティは、WarehouseTable に設定する必要があります。 | はい |
schema | スキーマの名前。 | ソースの場合はいいえ、シンクの場合ははい |
table | テーブル/ビューの名前。 | ソースの場合はいいえ、シンクの場合ははい |
データセットのプロパティの例
{
"name": "FabricWarehouseTableDataset",
"properties": {
"type": "WarehouseTable",
"linkedServiceName": {
"referenceName": "<Microsoft Fabric Warehouse linked service name>",
"type": "LinkedServiceReference"
},
"schema": [ < physical schema, optional, retrievable during authoring >
],
"typeProperties": {
"schema": "<schema_name>",
"table": "<table_name>"
}
}
}
コピー アクティビティのプロパティ
アクティビティの定義に使用できるセクションとプロパティの一覧については、コピー アクティビティの構成およびパイプラインとアクティビティに関する記事をご覧ください。 このセクションでは、Microsoft Fabric ウェアハウスのソースとシンクでサポートされるプロパティの一覧を示します。
ソースとしての Microsoft Fabric ウェアハウス
ヒント
データ パーティション分割を使って Microsoft Fabric ウェアハウスからデータを効率的に読み込むには、「Microsoft Fabric ウェアハウスから並列にコピーする」をご覧ください。
Microsoft Fabric ウェアハウスからデータをコピーするには、Copy アクティビティのソースの type プロパティを WarehouseSource に設定します。 コピー アクティビティの source セクションでは、次のプロパティがサポートされます。
プロパティ | 内容 | 必須 |
---|---|---|
type | Copy アクティビティのソースの type プロパティは、WarehouseSource に設定する必要があります。 | はい |
sqlReaderQuery | カスタム SQL クエリを使用してデータを読み取ります。 例: select * from MyTable . |
いいえ |
sqlReaderStoredProcedureName | ソース テーブルからデータを読み取るストアド プロシージャの名前。 最後の SQL ステートメントはストアド プロシージャの SELECT ステートメントにする必要があります。 | いいえ |
storedProcedureParameters | ストアド プロシージャのパラメーター。 使用可能な値は、名前または値のペアです。 パラメーターの名前とその大文字と小文字は、ストアド プロシージャのパラメーターの名前とその大文字小文字と一致する必要があります。 |
いいえ |
queryTimeout | クエリ コマンド実行のタイムアウトを指定します。 既定値は 120 分です。 | いいえ |
isolationLevel | SQL ソースのトランザクション ロック動作を指定します。 指定できる値は Snapshot です。 指定しなかった場合は、データベースの既定の分離レベルが使用されます。 詳細については、「system.data.isolationlevel」を参照してください。 | いいえ |
partitionOptions | Microsoft Fabric ウェアハウスからのデータの読み込みに使われるデータ パーティション分割オプションを指定します。 指定できる値は、None (既定値) と DynamicRange です。 パーティション オプションが有効になっている場合 (つまり、 None ではない場合)、Microsoft Fabric ウェアハウスから同時にデータを読み込む並列処理の次数は、Copy アクティビティの parallelCopies の設定によって制御されます。 |
いいえ |
partitionSettings | データ パーティション分割の設定のグループを指定します。 パーティション オプションが None でない場合に適用されます。 |
いいえ |
partitionSettings の下: |
||
partitionColumnName | 並列コピーの範囲パーティション分割で使われる整数型または日付/日時型 (int 、smallint 、bigint 、date 、datetime2 ) のソース列の名前を指定します。 指定しない場合は、テーブルのインデックスまたは主キーが自動的に検出され、パーティション列として使用されます。パーティション オプションが DynamicRange である場合に適用されます。 クエリを使用してソース データを取得する場合は、WHERE 句で ?DfDynamicRangePartitionCondition をフックします。 例については、「Microsoft Fabric ウェアハウスから並列にコピーする」セクションをご覧ください。 |
いいえ |
partitionUpperBound | パーティション範囲の分割のための、パーティション列の最大値。 この値は、テーブル内の行のフィルター処理用ではなく、パーティションのストライドを決定するために使用されます。 テーブルまたはクエリ結果に含まれるすべての行がパーティション分割され、コピーされます。 指定されていない場合は、コピー アクティビティによって値が自動検出されます。 パーティション オプションが DynamicRange である場合に適用されます。 例については、「Microsoft Fabric ウェアハウスから並列にコピーする」セクションをご覧ください。 |
いいえ |
partitionLowerBound | パーティション範囲の分割のための、パーティション列の最小値。 この値は、テーブル内の行のフィルター処理用ではなく、パーティションのストライドを決定するために使用されます。 テーブルまたはクエリ結果に含まれるすべての行がパーティション分割され、コピーされます。 指定されていない場合は、コピー アクティビティによって値が自動検出されます。 パーティション オプションが DynamicRange である場合に適用されます。 例については、「Microsoft Fabric ウェアハウスから並列にコピーする」セクションをご覧ください。 |
いいえ |
Note
ソースでストアド プロシージャを使ってデータを取得するときは、異なるパラメーター値が渡されたら異なるスキーマを返すようにストアド プロシージャが設計されている場合、UI からスキーマをインポートするときや、テーブルの自動作成を使って Microsoft Fabric ウェアハウスにデータをコピーするときに、エラーが発生したり、予期しない結果になったりする可能性があることに注意してください。
例: SQL クエリの使用
"activities":[
{
"name": "CopyFromMicrosoftFabricWarehouse",
"type": "Copy",
"inputs": [
{
"referenceName": "<Microsoft Fabric Warehouse input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "WarehouseSource",
"sqlReaderQuery": "SELECT * FROM MyTable"
},
"sink": {
"type": "<sink type>"
}
}
}
]
例: ストアド プロシージャの使用
"activities":[
{
"name": "CopyFromMicrosoftFabricWarehouse",
"type": "Copy",
"inputs": [
{
"referenceName": "<Microsoft Fabric Warehouse input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "WarehouseSource",
"sqlReaderStoredProcedureName": "CopyTestSrcStoredProcedureWithParameters",
"storedProcedureParameters": {
"stringData": { "value": "str3" },
"identifier": { "value": "$$Text.Format('{0:yyyy}', <datetime parameter>)", "type": "Int"}
}
},
"sink": {
"type": "<sink type>"
}
}
}
]
サンプル ストアド プロシージャ:
CREATE PROCEDURE CopyTestSrcStoredProcedureWithParameters
(
@stringData varchar(20),
@identifier int
)
AS
SET NOCOUNT ON;
BEGIN
select *
from dbo.UnitTestSrcTable
where dbo.UnitTestSrcTable.stringData != stringData
and dbo.UnitTestSrcTable.identifier != identifier
END
GO
シンクの種類としての Microsoft Fabric ウェアハウス
Azure Data Factory と Synapse パイプラインでは、COPY ステートメントを使って Microsoft Fabric ウェアハウスにデータを読み込むことができます。
Microsoft Fabric ウェアハウスにデータをコピーするには、Copy アクティビティのシンクの種類を WarehouseSink に設定します。 コピー アクティビティの sink セクションでは、次のプロパティがサポートされます。
プロパティ | 内容 | 必須 |
---|---|---|
type | Copy アクティビティのシンクの type プロパティには、WarehouseSink を設定する必要があります。 | はい |
allowCopyCommand | Microsoft Fabric ウェアハウスにデータを読み込むために、COPY ステートメントを使うかどうかを示します。 制約と詳細については、「COPY ステートメントを使用して Microsoft Fabric ウェアハウスにデータを読み込む」をご覧ください。 使用できる値は True です。 |
はい |
copyCommandSettings | allowCopyCommand プロパティが TRUE に設定されているときに指定できるプロパティのグループ。 |
いいえ |
writeBatchTimeout | このプロパティでは、挿入、アップサート、ストアド プロシージャ操作の完了の待機がタイムアウトするまでの時間を指定します。 使用可能な値は期間に対する値です。 たとえば "00:30:00" (30 分) を指定できます。 値を指定しない場合、タイムアウトの既定値は "00:30:00" です。 |
いいえ |
preCopyScript | Copy アクティビティの毎回の実行で、データを Microsoft Fabric ウェアハウスに書き込む前に実行する SQL クエリを指定します。 前に読み込まれたデータをクリーンアップするには、このプロパティを使います。 | いいえ |
tableOption | ソースのスキーマに基づいて自動的にシンク テーブルを作成するかどうかを指定します (存在しない場合)。 使用できる値は none (既定値)、autoCreate です。 |
いいえ |
disableMetricsCollection | サービスでは、コピーのパフォーマンスの最適化と推奨を目的としてメトリックが収集されます。これにより、マスター DB への追加アクセスが発生します。 この動作に不安がある場合は、true を指定してオフにします。 |
いいえ (既定値は false ) |
例: Microsoft Fabric ウェアハウスのシンク
"activities":[
{
"name": "CopyToMicrosoftFabricWarehouse",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<Microsoft Fabric Warehouse output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "WarehouseSink",
"allowCopyCommand": true,
"tableOption": "autoCreate",
"disableMetricsCollection": false
}
}
}
]
Microsoft Fabric ウェアハウスから並列にコピーする
Copy アクティビティの Microsoft Fabric ウェアハウス コネクタでは、データを並列にコピーするための組み込みのデータ パーティション分割が提供されます。 データ パーティション分割オプションは、Copy アクティビティの [ソース] タブにあります。
パーティション分割されたコピーを有効にすると、Copy アクティビティは Microsoft Fabric ウェアハウス ソースに対して並列クエリを実行し、パーティションごとにデータを読み込みます。 並列度は、コピー アクティビティの parallelCopies
設定によって制御されます。 たとえば、parallelCopies
を 4 に設定した場合、サービスは指定されたパーティション オプションと設定に基づいて 4 つのクエリを同時に生成して実行し、クエリごとに Microsoft Fabric ウェアハウスからデータの一部を取得します。
特に、Microsoft Fabric ウェアハウスから大量のデータを読み込む場合は、データ パーティション分割を使用した並列コピーを有効にすることをお勧めします。 さまざまなシナリオの推奨構成を以下に示します。 ファイルベースのデータ ストアにデータをコピーする場合は、複数のファイルとしてフォルダーに書き込む (フォルダー名のみを指定する) ことをお勧めします。この場合、1 つのファイルに書き込むよりもパフォーマンスが優れています。
シナリオ | 推奨設定 |
---|---|
データ パーティション分割用の整数または日時の列がある大きなテーブル全体から読み込む。 | パーティション オプション: 動的範囲パーティション。 パーティション列 (省略可能):データのパーティション分割に使用される列を指定します。 指定されていない場合は、インデックスまたは主キー列が使用されます。 パーティションの上限とパーティションの下限 (省略可能):パーティションのストライドを決定する場合に指定します。 これは、テーブル内の行のフィルター処理用ではなく、テーブル内のすべての行がパーティション分割されてコピーされます。 指定されていない場合は、コピー アクティビティによって値が自動検出されます。 たとえば、パーティション列「ID」の値の範囲が 1 ~ 100 で、下限を 20 に、上限を 80 に設定し、並列コピーを 4 にした場合、サービスによって 4 つのパーティションでデータが取得されます。ID の範囲は、それぞれ、20 以下、21 ~ 50、51 ~ 80、81 以上となります。 |
データ パーティション分割用の整数列または日付/日時列がある大量のデータを、カスタム クエリを使用して読み込む。 | パーティション オプション: 動的範囲パーティション。 クエリ: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause> パーティション列: データのパーティション分割に使用される列を指定します。 パーティションの上限とパーティションの下限 (省略可能):パーティションのストライドを決定する場合に指定します。 これは、テーブル内の行のフィルター処理用ではなく、クエリ結果のすべての行がパーティション分割されてコピーされます。 指定されていない場合は、Copy アクティビティによって値が自動検出されます。 たとえば、パーティション列「ID」の値の範囲が 1 ~ 100 で、下限を 20 に、上限を 80 に設定し、並列コピーを 4 にした場合、サービスによって 4 つのパーティションでデータが取得されます。ID の範囲は、それぞれ、20 以下、21 ~ 50、51 ~ 80、81 以上となります。 さまざまなシナリオのサンプル クエリを次に示します。 1.テーブル全体に対してクエリを実行する: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition 2.列の選択と追加の where 句フィルターが含まれるテーブルからのクエリ: SELECT <column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause> 3.サブクエリを使用したクエリ: SELECT <column_list> FROM (<your_sub_query>) AS T WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause> 4.サブクエリにパーティションがあるクエリ: SELECT <column_list> FROM (SELECT <your_sub_query_column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition) AS T |
パーティション オプションを使用してデータを読み込む場合のベスト プラクティス:
- データ スキューを回避するため、パーティション列 (主キーや一意キーなど) には特徴のある列を選択します。
- Azure Integration Runtime を使用してデータをコピーする場合は、より大きな (4 より大きい) "データ統合単位 (DIU)" (>4) を設定すると、より多くのコンピューティング リソースを利用できます。 そこで、該当するシナリオを確認してください。
- パーティション数は、"コピーの並列処理の次数" によって制御されます。この数値を大きくしすぎるとパフォーマンスが低下するため、この数値は、(DIU またはセルフホステッド IR ノードの数) x (2 から 4) に設定することをお勧めします。
- Microsoft Fabric ウェアハウスは最大で 32 個のクエリを同時に実行でき、"コピーの並列処理の次数" の設定を高くしすぎると、ウェアハウスでスロットリングの問題が発生する可能性があることに注意してください。
例: 動的範囲パーティションを使用してクエリを実行する
"source": {
"type": "WarehouseSource",
"query": "SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>",
"partitionOption": "DynamicRange",
"partitionSettings": {
"partitionColumnName": "<partition_column_name>",
"partitionUpperBound": "<upper_value_of_partition_column (optional) to decide the partition stride, not as data filter>",
"partitionLowerBound": "<lower_value_of_partition_column (optional) to decide the partition stride, not as data filter>"
}
}
COPY ステートメントを使用して Microsoft Fabric ウェアハウスにデータを読み込む
COPY ステートメントの使用は、高いスループットで Microsoft Fabric ウェアハウスにデータを読み込むための簡単で柔軟な方法です。 詳細については、「COPY ステートメントを使用したデータの一括読み込み」を参照してください
- ソース データが Azure Blob または Azure Data Lake Storage Gen2 内にあり、COPY ステートメントと互換性がある形式である場合は、Copy アクティビティを使って COPY ステートメントを直接呼び出し、Microsoft Fabric ウェアハウスにソースからデータをプルさせることができます。 詳しくは、「 COPY ステートメントを使用して直接コピーする 」をご覧ください。
- ソース データ ストアと形式が、本来は COPY ステートメントでサポートされていない形式の場合は、代わりに COPY ステートメントを使用したステージング コピー を使います。 ステージング コピー機能はスループットも優れています。 データは、COPY ステートメントと互換性のある形式に自動的に変換されて、Azure Blob Storage に格納された後、COPY ステートメントが呼び出されて Microsoft Fabric ウェアハウスに読み込まれます。
ヒント
Azure Integration Runtime で COPY ステートメントを使用する場合、有効なデータ統合単位 (DIU) は常に 2 です。 DIU をチューニングしてもパフォーマンスには影響しません。
COPY ステートメントを使用した直接コピー
Microsoft Fabric ウェアハウスの COPY ステートメントでは、Azure Blob、Azure Data Lake Storage Gen1、Azure Data Lake Storage Gen2 が直接サポートされます。 ソース データがこのセクションで説明する条件を満たしている場合は、COPY ステートメントを使ってソース データ ストアから Microsoft Fabric ウェアハウスに直接コピーします。 それ以外の場合は、COPY ステートメントを使用したステージング コピーを使います。 サービスによって設定が確認され、条件が満たされない場合、Copy アクティビティの実行は失敗します。
ソースのリンクされたサービスと形式では、次の種類と認証方法が使用されます。
サポートされるソース データ ストアの種類 サポートされる形式 サポートされる認証の種類 Azure BLOB 区切りテキスト アカウント キー認証、Shared Access Signature 認証 Parquet アカウント キー認証、Shared Access Signature 認証 Azure Data Lake Storage Gen2 区切りテキスト
Parquetアカウント キー認証、Shared Access Signature 認証 形式設定は次のとおりです。
- Parquet の場合:
compression
は圧縮なし、Snappy、またはGZip
に設定できます。 - 区切りテキストの場合:
rowDelimiter
が単一の文字または " \r\n" として明示的に設定されており、既定値がサポートされていない。nullValue
が既定値のままか、空の文字列 ("") に設定されている。encodingName
が既定値のままか、utf-8 または utf-16 に設定されている。escapeChar
がquoteChar
と同じである必要があり、空ではない。skipLineCount
が既定値のままか、0 に設定されている。compression
は圧縮なしまたはGZip
に設定できます。
- Parquet の場合:
ソースがフォルダーの場合は、コピー アクティビティの
recursive
を true に設定し、wildcardFilename
が*
または*.*
である必要があります。wildcardFolderPath
、wildcardFilename
(*
または*.*
以外)、modifiedDateTimeStart
、modifiedDateTimeEnd
、prefix
、enablePartitionDiscovery
、additionalColumns
は指定されません。
コピー アクティビティの allowCopyCommand
では、次の COPY ステートメント設定がサポートされています。
プロパティ | 内容 | 必須 |
---|---|---|
defaultValues | Microsoft Fabric ウェアハウスの各ターゲット列の既定値を指定します。 このプロパティの既定値により、データ ウェアハウスで設定されている DEFAULT 制約が上書きされます。ID 列に既定値を設定することはできません。 | いいえ |
additionalOptions | COPY ステートメントの "With" 句で、Microsoft Fabric ウェアハウスの COPY ステートメントに直接渡される追加オプション。 COPY ステートメントの要件に合わせて、必要に応じて値を引用符で囲みます。 | いいえ |
"activities":[
{
"name": "CopyFromAzureBlobToMicrosoftFabricWarehouseViaCOPY",
"type": "Copy",
"inputs": [
{
"referenceName": "ParquetDataset",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "MicrosoftFabricWarehouseDataset",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "ParquetSource",
"storeSettings":{
"type": "AzureBlobStorageReadSettings",
"recursive": true
}
},
"sink": {
"type": "WarehouseSink",
"allowCopyCommand": true,
"copyCommandSettings": {
"defaultValues": [
{
"columnName": "col_string",
"defaultValue": "DefaultStringValue"
}
],
"additionalOptions": {
"MAXERRORS": "10000",
"DATEFORMAT": "'ymd'"
}
}
},
"enableSkipIncompatibleRow": true
}
}
]
COPY ステートメントを使用したステージング コピー
ソース データが COPY ステートメントとネイティブに互換性がない場合は、中間ステージング Azure Blob または Azure Data Lake Storage Gen2 を介したデータのコピーを有効にします (Azure Premium Storage は使用できません)。 この場合、サービスによって、COPY ステートメントのデータ形式要件を満たすようにデータが自動的に変換されます。 その後、COPY ステートメントを呼び出して、Microsoft Fabric ウェアハウスにデータを読み込みます。 最後に、ストレージから一時データがクリーンアップされます。 ステージング経由でのデータのコピーの詳細は、「ステージング コピー」を参照してください。
この機能を使用するには、中間ストレージとして Azure Storage アカウントを参照するアカウント キーまたはシステム マネージド ID の認証を使用して、Azure Blob Storage のリンクされたサービスまたは Azure Data Lake Storage Gen2 のリンクされたサービスを作成します。
重要
- ステージングのリンクされたサービスに対してマネージド ID 認証を使用する場合は Azure Blob と Azure Data Lake Storage Gen2 に必要な各構成について確認してください。
- ステージング Azure Storage が VNet サービス エンドポイントを使用して構成されている場合は、ストレージ アカウントで [allow trusted Microsoft service](信頼された Microsoft サービスを許可する) を有効にしたマネージド ID 認証を使用する必要があります。詳細については「Azure Storage で VNet サービス エンドポイントを使用した場合の影響」を参照してください。
重要
ステージング Azure Storage がマネージド プライベート エンドポイントで構成され、ストレージ ファイアウォールが有効になっている場合は、マネージド ID 認証を使用し、Synapse SQL Server にストレージ BLOB データ閲覧者のアクセス許可を付与して、COPY ステートメントの読み込み中にステージング ファイルにアクセスできるようにする必要があります。
"activities":[
{
"name": "CopyFromSQLServerToMicrosoftFabricWarehouseViaCOPYstatement",
"type": "Copy",
"inputs": [
{
"referenceName": "SQLServerDataset",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "MicrosoftFabricWarehouseDataset",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "SqlSource",
},
"sink": {
"type": "WarehouseSink",
"allowCopyCommand": true
},
"stagingSettings": {
"linkedServiceName": {
"referenceName": "MyStagingStorage",
"type": "LinkedServiceReference"
}
}
}
}
]
Lookup アクティビティのプロパティ
プロパティの詳細については、Lookup アクティビティに関するページを参照してください。
GetMetadata アクティビティのプロパティ
プロパティの詳細については、GetMetadata アクティビティに関するページを参照してください。
Microsoft Fabric ウェアハウスのデータ型のマッピング
Microsoft Fabric ウェアハウスからデータをコピーするとき、Microsoft Fabric ウェアハウスのデータ型から、サービスの内部的な中間データ型に対しては、次のマッピングが使われます。 コピー アクティビティでソースのスキーマとデータ型がシンクにマッピングされるしくみについては、スキーマとデータ型のマッピングに関する記事を参照してください。
Microsoft Fabric ウェアハウスのデータ型 | Data Factory の中間データ型 |
---|---|
bigint | Int64 |
binary | Byte[] |
bit | Boolean |
char | String, Char[] |
date | DateTime |
datetime2 | DateTime |
Decimal | Decimal (10 進数型) |
FILESTREAM attribute (varbinary(max)) | Byte[] |
Float | Double |
INT | Int32 |
numeric | Decimal |
real | Single |
smallint | Int16 |
time | TimeSpan |
UNIQUEIDENTIFIER | Guid |
varbinary | Byte[] |
varchar | String, Char[] |
次のステップ
コピー アクティビティによってソース、シンクとしてサポートされるデータ ストアの一覧については、サポートされるデータ ストアに関するセクションを参照してください。