0
0
この記事誰得? 私しか得しないニッチな技術で記事投稿!
Qiita Engineer Festa20242024年7月17日まで開催中!

Azure Data Factory にて階層構造をソースとしたコピーアクティビティ実施時の表形式へのシンク方法

Posted at

概要

Azure Data Factory にて階層構造をソースとしたコピーアクティビティ実施時の表形式へのシンク方法を紹介します。 Saleforce REST API により Salesforce から CSV などの表形式のシンク先へデータ連携する際に本手順が必要となります。

Salesforce REST API にて SOQL (Salesforce Object Query Language)によりデータを取得する場合には下記のような json がリターンされます。recordsというオブジェクトにて取得したいレコードが格納されており、配列の階層構造となっております。

{
    "done" : true,
    "totalSize" : 14,
    "records" : 
    [ 
        {  
            "attributes" : 
            {    
                "type" : "Account",    
                "url" : "/services/data/v60.0/sobjects/Account/001D000000IRFmaIAH"  
            },  
            "Name" : "Test 1"
        }, 
        {  
            "attributes" : 
            {    
                "type" : "Account",    
                "url" : "/services/data/v60.0/sobjects/Account/001D000000IomazIAB"  
            },  
            "Name" : "Test 2"
        }, 

        ...

    ]
}

引用元:SOQL クエリを実行する | REST API 開発者ガイド | Salesforce Developers

上記のようなデータをマップの設定をせずにデータ連携すると、下記のように配列の列(records)が省略されてしまいます。

image.png

表形式でシンクする際には、Azure Data factory のドキュメントにて階層構造のソースから表形式のシンクへの項にて紹介されているコレクション参照の設定を実施する必要があります。本記事では、コレクション参照を設定して Salesforce のデータを適切に取得する方法を紹介します。

image.png

image.png

引用元:コピー アクティビティでのスキーマとデータ型のマッピング - Azure Data Factory & Azure Synapse | Microsoft Learn

本記事では CSV などの表形式として連携する場合の設定手順を紹介しておりますが、 json 形式として書き込むことが許容できる場合には REST API の出力結果をそのまま保持させることがおすすめです。 json 形式で出力し、そのファイルを Spark などで処理することの方が開発生産性や保守性が向上することを期待できます。

image.png

image.png

image.png

事前準備

下記の作業を実施ます。

  • Salesforce にて接続アプリを作成
  • Azure Data Factory にて salesforce のリンクサービスを作成
  • Azure Data Factory にて Salesforce REST API をソースとしてコピーアクティビティをもつパイプラインを作成

設定手順

1. コピーアクティビティのマップのタブにて、スキーマのインポートを選択

image.png

2. コレクション参照にてrecordsを選び、再度、スキーマのインポートを選択

image.png

3. recordコレクション参照にチェックがはいっていることを確認

image.png

4. すべてのカラムにて種類(データ型)を設定

image.png

5. パイプラインを実行し正常終了することを確認

image.png

6. 書きこまれたデータが想定であるかを確認

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0