2017-09-18 6 views
0

.net APIを使用してAzureデータファクトリパイプラインを作成しています。ここでは、sqlReaderQueryを使用して入力データソースを提供しています。つまり、このクエリは複数のテーブルを使用できます。 だから、問題は、我々は、このクエリから任意の単一のテーブルを抽出し、以下に示すように、データセット内のtypePropertyようtableNameのを与えることができないです。Azure Data FactoryソースとしてsqlReaderQueryを使用した入力データセット

"typeProperties": { 
      "tableName": "?" 
     } 

データセットを作成する際tableNameのが必須であるとして、それは例外をスローします。この場合、tableNameを提供したくないのですか?同じことをする選択肢はありますか? また、データセットに構造を提供しています。

答えて

1

残念ながら、あなたはそれをネイティブに行うことはできません。各テーブルにデータセットを展開する必要があります。 Azure Data Factoryは、実行時間より前のすべてのアクティビティーのスライスを生成します。テーブル名を知らなければ、これらの入力スライスの作成時にデータファクトリが失敗します。

複数のテーブルから読み取る場合は、ストアドプロシージャをデータセットの入力として使用します。ストアドプロシージャで結合と入力シェイピングを行います。

また、データベースレベルで動作する動的なカスタムアクティビティを構築することで、これを回避することもできます。これを行うときは、ダミー入力データセットと汎用出力データセットを使用して、ほとんどのプロセスを自分で制御します。

0

特に、あなたが... ReaderQueryを提供している場合、このプロパティは必須です。 Oracleのコピーでは、sys.dualをテーブル名として使用しました。これは、Oracleのビルトインダミーテーブルの一種です。 SQL Serverでは、システムビューの1つを使用するか、ダミーテーブルを設定できます。

関連する問題