<目次>
Azure Synapse AnalyticsでRestAPIのデータを取得する方法
やりたいこと/概要
STEP0:前提条件
STEP1:リンクサービスの作成(例)
STEP2:統合データセットの作成(例)
STEP3:パイプライン(内でデータフロー)の作成(例)
STEP4:動作確認
【注意】Azure Synapse Analyticsの料金について
Azure Synapse AnalyticsでRestAPIのデータを取得する方法
やりたいこと/概要
●やりたいこと
・Azure Synapse AnalyticsでRestAPIからデータを取得する
・今回は例として「郵便番号API」の検索結果を、SQL Serverのテーブルに格納する
(図100)
●概要
データ取得のコネクタは3種類あり、それぞれ以下の特徴を持つ。
(表)
■コネクタ種別 |
■概要 |
REST |
RESTful APIからデータをコピーする |
HTTP |
・HTTPエンドポイント全般からデータを取得する(ファイルのダウンロードなど)。
・RESTコネクタと比較すると、機能は少ないが手軽(最初の選択として良い) |
Web Table |
HTMLのWebページからデータを抽出。 |
STEP0:前提条件
・【前提①】Synapseのワークスペースが準備済みであること
・【前提②】Azure SQL Serverのリソースが準備済みであること
⇒(手順)
Azure SQL Serverのリソースが準備済である事
(参考)【前提②】で作成するテーブルのDDL文
CREATE TABLE your_table_name_results (
id INT PRIMARY KEY IDENTITY(1,1),
address1 NVARCHAR(255),
address2 NVARCHAR(255),
address3 NVARCHAR(255),
kana1 NVARCHAR(255),
kana2 NVARCHAR(255),
kana3 NVARCHAR(255),
prefcode NVARCHAR(255),
zipcode NVARCHAR(255)
);
STEP1:リンクサービスの作成(例)
●STEP1-1:入力データ取得用の「REST」のリンクサービスを作成
・①左メニュー「Manage」→「Linked services」→「新規」
(図111)

↓
・②「REST」→「続行」
(図112)

(図113①②)
↓
↓
・④「すべて発行」押下⇒「発行」押下
(図114①②)
↓
●STEP1-2:出力データ保存用の「SQL Server」のリンクサービスを作成
・①左メニュー「Manage」→「Linked services」→「新規」
(図121)

↓
・②「Azure SQL Database」→「続行」
(図122)

↓
・③必要項目を入力して「作成」
※【前提②】で準備したAzure SQL Serverの情報を入力
(図123)
↓
・④作成完了
(図124)

STEP2:統合データセットの作成(例)
●STEP2-1:入力データ取得用の「REST」の統合データセット作成
・①左メニュー「Data」→「+」押下
(図211)

↓
・②「統合データセット」押下
(図212)

↓
・③「REST」⇒「続行」
(図213)

↓
・④先ほど「●STEP1-1」で作成したRESTのリンクサービスを指定
(図214)

↓
・⑤「すべて発行」→「発行」押下
(図215①②)
↓
●STEP2-2:出力データ保存用の「SQL Server」の統合データセット作成
・①左メニュー「Data」→「+」押下→「統合データセット」押下
(図221)

↓
・②「Azure SQL Database」⇒「続行」
(図222)

↓
・③先ほど「●STEP1-2」で作成したSQL Serverのリンクサービスを指定
(図223)

↓
・④「すべて発行」→「発行」押下
(図224①②)

STEP3:パイプライン(内でデータフロー)の作成(例)
●STEP3-1:パイプライン作成&データフロー作成
それぞれの入れ物を作成します。
・①左メニュー「Integrate」→「+」→「パイプライン」
(図311)

↓
・②「移動と変換」の中から「データフロー」を右エリアにドラッグ&ドロップ
(図312)

↓
・③「設定」タブ→「データフロー」で「+新規」
(図313)

↓
●STEP3-2:ソースの設定
・①「ソースの追加」
(図321)

↓
・②「ソースの設定」タブは下記例のように設定する。
(図322)

↓
・②「ソースのオプション」タブ→「クエリパラメータ」を設定
zipcode : 0790177
limit : 2
(図325)

↓
・③「プロジェクション」タブで「プロジェクションのインポート」
(図323①②)
↓
↓
・④「データのプレビュー」タブで「最新の情報に更新」
(図324①②)
↓
ステータスコード:200の正常応答が返ってくる

●STEP3-3:フラット化の設定
・①「+」→「フラット化」
(図331)

↓
・②「フラット化の設定」を設定する
・「着信ストリーム」→「source1」(●STEP3-2の結果)
・「アンロール方法」→「body.requests」
・「入力列」→「body.requests ⇒ body」
(図332①②)

↓
・③「データのプレビュー」タブで「最新の情報に更新」
(図333)

●STEP3-4:シンクの設定
・①「+」→「シンク」
(図341)

↓
・②「シンク」を設定する
・「着信ストリーム」→「flatten」(●STEP3-3の結果)
・「データセット」→「AzureSqlTable2」(●STEP2-2の結果)
(図342)

↓
・③「マップ」を設定する
(図343)

↓
・④「データのプレビュー」タブで「最新の情報に更新」
(図344①②)

STEP4:動作確認
・①パイプラインのタブから「デバッグ」押下
(図411)

↓
・②出力タブにアクティビティが追加され「キューに挿入済み」になる
(図412)

↓
・③状態が「成功」になった
(図413)

↓
・④データ2件が「SQL Server」のテーブルにINSERTされた
(図414)
【注意】Azure Synapse Analyticsの料金について
非常に強力な分、料金も他のAzureサービスと比較すると高いので、注意が必要。