Azure Data FactoryのデータフローでSelectする
データフローでSalesLT.AddressテーブルをSelectして、少し加工した結果をdbo.Resultテーブルに保存してみます。
前提
-
- SQL database作成済み
- サンプルテーブル、サンプルデータ投入済み
- データセット作成済み
データフロー作成
「データフロー」にカーソルを合わせて右クリックし「新しいデータフロー」をクリックします。
「ソースの追加」にカーソルを合わせてクリックします。
「データセット」を設定します。
「データフロー」のソース右下にある「+」をクリック、「選択」をクリックします。
selectのソースが追加され、マッピング欄に列が表示されます。
自動マッピングのチェックを外して、9列を4列に編集します。
selectのソース右下の「+」をクリック、「シンク」を選択して保存します。
シンクの設定をします。
着信ストリーム:select1
データセット:AzureSqlTable2
AzureSqlTable2のDDL(Resultテーブル)です。
CREATE TABLE [dbo].[Result]( [AddressID] [int] NOT NULL, [AddressLine1] [nvarchar](50) NOT NULL, [AddressLine2] [nvarchar](50) NOT NULL, [City] [nvarchar](50) NOT NULL, CONSTRAINT PK_Student PRIMARY KEY ([AddressID]) ) ON [PRIMARY];
これでデータフロー作成完了です。
パイプライン作成
作成した「データフロー」をパイプラインにD&Dします。
デバッグ
「検証」でエラーが出なければ「デバッグ」を押して確認します。
Resultテーブルを確認します。
どちらのテーブルも450件レコードが存在することが確認できます。
2回実行すると一意制約でエラーになるので、シンクで設定を変えて回避します。
テーブルの切り詰め(シンク)
シンクの設定で「テーブルアクション」がデフォルトは「なし」になっています。
これを「テーブルの切り詰め」にすれば、trancateされてから保存されるようになるので一意制約のエラーは出ません。
テーブルの再作成(シンク)
シンクの「テーブルアクション」の設定で「テーブルの再作成」がありますが、これはテーブルをDrop&Createします。
テーブルの切り詰めより少し処理時間がかかるようです。
データセットを作成します。テーブル名は「dbo.Result2」という存在しないテーブル名にします。
シンクの「データセット」に設定をします。
デバッグします。正常終了したらクエリエディタで確認します。加工したデータにあったテーブルがCreateされていることが確認できます。
「テーブルの再作成」なのでもう一度実行してもDrop&Createされるので一意制約エラーなどにはなりません。
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^