---
title: "Azure Synapse Analytics と Web Data Pipelines の連携"
slug: azure-synapse-analytics-with-bright-data
date: 2026-03-04T11:29:40+00:00
modified: 2026-03-04T11:29:44+00:00
permalink: https://brightdata.jp/blog/ai/azure-synapse-analytics-with-bright-data
type: blog
---

[ ブログ ](https://brightdata.jp/blog "ブログ") / [AI](https://brightdata.jp/blog/ai)







 [AI](https://brightdata.jp/blog/ai)

# Azure Synapse Analytics と Web Data Pipelines の連携

Bright DataのSERP APIを使用したAzure Synapse Analyticsにおける日次キーワードランキングトラッカーの構築：データ取り込みからSQL分析まで

 5 分読





 [ ![Arindam Majumder](https://media.brightdata.jp/2025/07/Arindam-Majumder-50x50.jpg) ](https://brightdata.com/blog/authors/arindam-majumder)

 [Arindam Majumder

Technical Writer

 ](https://brightdata.com/blog/authors/arindam-majumder)





 ![Azure Synapse Analytics with web data pipelines](https://media.brightdata.jp/2026/03/Azure-Synapse-Analytics-with-web-data-pipelines.png)





この記事では以下を学びます：

- [Azure Synapse Analytics](https://azure.microsoft.com/en-us/products/synapse-analytics)の概要と提供機能
- Azure Synapse AnalyticsでBright DataのSERP APIを統合する戦略的優位性
- [Bright DataのSERP API](/products/serp-api)を使用してウェブ検索データを収集・変換・分析するAzure Synapseパイプラインの構築方法。

それでは始めましょう！

## Azure Synapse Analyticsとは？

Azure Synapse Analyticsは、データ統合、エンタープライズデータウェアハウジング、ビッグデータ処理を単一のワークスペースに統合したクラウドベースの分析プラットフォームです。パイプラインオーケストレーション、Apache Sparkプール、専用SQLプールとサーバーレスSQLプールの両方を提供し、単一の統合環境から大規模なデータの取り込み、変換、クエリを可能にします。

その主な目的は、生データからビジネスインサイトへの転換を支援することです。これは、データ取り込み用のパイプラインエンジン（Azure Data Factory上に構築）、コードベースの変換用Apache Sparkノートブック、クエリおよび分析対応データセットをダッシュボード、機械学習モデル、下流アプリケーションに提供するSQLプールを組み合わせることで実現されます。

### Azure Synapse Analytics と Azure AI Foundry の違いとは？

[SERP APIとAzure AI Foundryの統合](/blog/ai/azure-ai-foundry-with-serp-api)ガイドを既にご覧になった方は、Synapse Analyticsとの違いについて疑問に思われるかもしれません。両者は根本的に異なる目的を果たします：

- **Azure AI Foundryは**、AIアプリケーション、エージェント、プロンプトフローの構築・デプロイ・管理に特化した統合AI開発プラットフォームです。Azure OpenAI、Meta、MistralなどからのLLMカタログへのアクセスを提供し、プロンプトエンジニアリング、モデルの微調整、[RAGワークフロー](/blog/web-data/rag-explained)を含むAIファースト開発向けに設計されています。
- **Azure Synapse Analyticsは**、大量データの取り込み、複雑な変換の実行、大規模な構造化分析の提供に焦点を当てたデータ分析・ウェアハウジングプラットフォームです。[ETL/ELTパイプライン](/blog/proxy-101/etl-pipeline)、Sparkによるビッグデータ処理、SQLベースのビジネスインテリジェンスに優れています。

要するに、Azure AI FoundryはAI駆動アプリケーションとプロンプトフローを構築する場であり、Azure Synapse Analyticsは分析とレポートのためのデータ収集・変換・倉庫化を行うデータパイプラインを構築する場です。

両者は実に完璧に補完し合います。Synapseでデータ基盤を構築し、ウェブデータを大規模に収集・倉庫化した後、その精選されたデータをAI Foundryに供給してLLMを活用した分析を行うことが可能です。このチュートリアルでは、Synapse AnalyticsがBright DataのSERP APIと統合され、検索結果を収集しSparkで変換し、SQL経由で分析を提供する完全なウェブデータパイプラインを構築する方法を紹介します。

## Bright DataのSERP APIをAzure Synapse Analyticsに統合する理由

Azure Synapse Analyticsのパイプラインエンジンには強力なRESTコネクタが備わっており、任意のREST APIを呼び出して結果を直接Azure Data Lake Storageに保存できます。これにより、外部データソースを分析ワークフローに取り込むことが可能になります。しかし、データウェアハウスにリアルタイムのウェブ検索データを注入するには、信頼性が高くスケーラブルな構造化データソースが必要です。

そこでBright[DataのSERP APIが](/products/serp-api)活躍します。SERP API[はGoogle](https://brightdata.com/products/serp-api/google-search)、Bing、DuckDuckGo、Yandexなどの検索エンジンでクエリをプログラム的に検索し、完全なSERPコンテンツを取得できます。パース済みJSON、生のHTML、AI対応Markdownなど[複数の形式で](https://docs.brightdata.com/scraping-automation/serp-api/introduction)データを返すため、信頼性の高い最新かつ検証可能なデータソースを提供します。

このアプローチは特に以下に有用です：

- **SEOキーワード追跡パイプライン**：数千のキーワードにおける検索順位を毎日監視し、時間の経過に伴う傾向を特定します。
- **競合情報倉庫**：競合他社の可視性データを収集し、内部指標と結合して戦略的分析を行う。
- 業界・地域・期間を横断した検索結果トレンドを集約し、大規模レポート作成に活用する**市場調査データセット**。
- **コンテンツパフォーマンス分析**：ターゲットキーワードにおけるコンテンツの順位を追跡し、SEO施策の効果を測定します。

Azure Synapseのパイプラインオーケストレーションとデータウェアハウジング機能にBright DataのSERP APIを組み合わせることで、スクレイピングインフラを一切維持することなく、ウェブ検索データを大規模に継続的に収集・変換・分析するデータパイプラインを構築できます。

## Bright Dataを使用したAzure SynapseにおけるSERPデータパイプラインの構築方法

このガイドセクションでは、**毎日のキーワード順位トラッカー**の一部として、Bright DataのSERP APIをAzure Synapseパイプラインに統合する方法をご紹介します。このパイプラインは主に5つのステップで構成されています：

1. **ワークスペース設定**：リンクされたData Lake Storageアカウントを持つAzure Synapseワークスペースを作成します。
2. **データソース設定**：セキュアな認証情報ストレージを備えた、Bright DataのSERP APIを指すRESTリンクサービスを作成します。
3. **取り込みパイプライン**：Synapseパイプラインが追跡対象キーワード群のSERP APIを呼び出し、生のJSON結果をデータレイクに格納します。
4. **Spark変換**: Apache Sparkノートブックが生のSERPデータを平坦化・正規化し、分析可能なDeltaテーブルに変換します。
5. **SQL分析**: サーバーレスSQLクエリでランキング動向を分析し、Power BIダッシュボード用のビューを作成します。

> **注：**これは一例に過ぎず、SERP APIは他にも多くのシナリオやユースケースで活用できます。例えば、[価格監視](/blog/web-data/best-price-intelligence-tools)のパイプライン構築や、[機械学習モデル](/blog/web-data/web-scraping-for-machine-learning)へのSERPデータ供給なども可能です。

以下の手順に従い、Azure Synapse Analytics内でBright DataのSERP APIを活用したWebデータパイプラインを構築しましょう！

### 前提条件

このチュートリアルセクションを実践するには、以下の環境が整っていることを確認してください：

- Microsoftアカウント
- Azure サブスクリプション（無料トライアルでも可）。
- 有効なSERP APIゾーンとAPIキー（管理者権限付き）を持つBright Dataアカウント。

[公式のBright Dataドキュメントに従って](https://docs.brightdata.com/scraping-automation/serp-api/introduction)、SERP APIゾーンを設定し、APIキーを取得してください。APIキーとゾーン名はすぐに必要になりますので、安全な場所に保管してください。

### ステップ1: Azure Synapseワークスペースの作成

Azure SynapseパイプラインはSynapseワークスペース内でのみ利用可能です。そのため、最初にワークスペースを作成します。

Azureアカウントにログインし、Azureポータル上部の検索バーで「**Azure Synapse Analytics**」を検索します：

![Searching for Azure Synapse Analytics in the Azure Portal](https://media.brightdata.com/2026/03/B1lSXf7FZx.png)Synapse Analytics管理ページで\[**作成**\]をクリックします。作成フォームに入力します：

- **Azure サブスクリプション**を選択します。
- 既存**のリソースグループ**を選択するか、新規作成します。
- ワークスペースに名前を付けます（例:`bright-data-serp-pipeline`）。
- お近くの**リージョン**を選択します。
- **Data Lake Storage Gen2** の場合、**\[新規作成\]**を選択し、ストレージ アカウント名を入力します（すべて小文字、3～24 文字、グローバルに一意である必要があります。例:`serppipelinelake`）。`raw` という名前の新しいファイル システムを作成します。

\[**確認 + 作成**\]、\[**作成**\] の順にクリックしてデプロイを開始します。
![Filling out the Azure Synapse workspace creation form](https://media.brightdata.com/2026/03/SycRv4QKZg.png)

初期化プロセスには数分かかる場合があります。完了すると確認ページが表示されます。**「リソースに移動**」をクリックし、「**Synapse Studioを開く**」をクリックしてWebベースの開発環境を起動します。

![Synapse workspace deployment complete](https://media.brightdata.com/2026/03/ryF2YEQKbe.png)これでパイプラインの構築、Sparkノートブックの作成、SQLクエリの実行が可能なSynapseワークスペースが利用可能になります。

### ステップ 2: Apache Spark プールを作成する

このチュートリアルの後半で変換ノートブックを実行するには、ワークスペースに Apache Spark プールが必要です。

1. Synapse Studio で、**\[管理**\] &gt; \[**Apache Spark プール**\] &gt;**\[新規**\] に移動します。
2. プールに名前（例：`sparkpool`）を付けます。
3. **ノードサイズを**「**Small**(4 vCores / 32 GB)」に設定します。これは SERP データの変換には十分なサイズです。
4. **オートスケールを**有効にし、範囲を**3～5 ノード**に設定します。
5. \[**確認 + 作成**\]、次に \[**作成**\] をクリックします。

![Creating an Apache Spark pool](https://media.brightdata.com/2026/03/r1Y9EMQKbx.png)Sparkプールは数分で準備が整います。これでPySparkノートブックを実行するためのコンピューティングリソースが利用可能になります。

### ステップ3: 取り込みパイプラインの構築

追跡対象キーワードのセットについて Bright Data の SERP API を呼び出し、結果をデータレイクに保存する Synapse パイプラインを作成します。

#### 新しいパイプラインを作成します

1. **\[統合**\] &gt;**\[+\]**&gt;**\[パイプライン**\] に移動します。
2. `IngestSERPData` と名前を付けます。

![Creating a new pipeline](https://media.brightdata.com/2026/03/HyKr047F-e.png)#### パイプラインパラメータを追加

パイプラインキャンバスの背景をクリックしてパイプラインのプロパティを開きます。「**パラメータ**」タブに移動し、以下を追加します：

名前型デフォルト値`キーワード`配列`["ウェブスクレイピングツール", "プロキシサービス", "データ抽出API"]`これらは、ランキングを追跡したいキーワードです。このリストはいつでも変更できます。

#### ForEachアクティビティを追加

1. アクティビティパネルから**ForEach**アクティビティをキャンバスにドラッグします。
2. **設定**タブで、**\[項目**\] フィールドを次のように設定します:`@pipeline().parameters.keywords`

これにより配列内の各キーワードが反復処理されます。

![Configuring the ForEach activity](https://media.brightdata.com/2026/03/H11-1rXFZe.png)#### ForEach内部にWebアクティビティを追加

**Webアクティビティ**はREST APIを直接呼び出します。リクエスト自体にデータセットやリンクされたサービスは不要です。

1. ForEach アクティビティを**ダブルクリックして**内部キャンバスを開きます。デザイナーのヘッダーが ForEach スコープ内であることを示すように変更されるはずです（パンくずリスト形式の`IngestSERPData > ForEach1`）。
2. 左側の \[**アクティビティ**\] パネルで、**\[一般\] を**展開し、**Web**アクティビティを内部キャンバスにドラッグします。
3. `CallSERPAPI` などの名前を付けます。

![Adding a Web activity inside the ForEach](https://media.brightdata.com/2026/03/B1baJSQYZx.png)#### Webアクティビティの設定

Webアクティビティをクリックして選択し、\[**設定**\]タブで以下を設定します：

1. **URL**: フィールドに完全なAPIエンドポイントを直接入力します:

```none
https://api.brightdata.com/request
```

2. **メソッド**: ドロップダウンから「`POST`」を選択します。
3. **ヘッダー**: **「+ ヘッダーを追加**」を2回クリックして以下を追加:名前 値`Content-Type` `application/json` `Author` `ization` `Bearer YOUR_BRIGHT_DATA_API_KEY`
4. **Body**: ここでは、ForEachループから取得した現在のキーワードを含むSERP APIリクエストを渡します。**Bodyフィールドに直接**以下の式を入力してください（「動的コンテンツを追加」ポップアップは使用しないでください）:

```none
@concat('{"ゾーン":"YOUR_SERP_API_ゾーン","url":"https://www.google.com/search?q=',replace(item(),' ','+'),'&hl=en&gl=us","format":"raw","data_format":"json"}')
```

`YOUR_SERP_API_ZONE を`Bright Data ダッシュボードの実際のゾーン名に置き換えてください。

> **重要:**フィールドの先頭文字は必ず`「@」`とし、先頭にスペースを入れないでください。これによりSynapseはテキストを式として評価します。正しく入力されると、フィールド内で式がハイライト表示されます。プレーンテキストとして表示される場合は、`@が`位置0にあることを確認し、削除して再入力してください。
>
> **動作説明:** `item()`関数はForEachループから現在のキーワード（例:`"ウェブスクレイピングツール"`）を返します。`replace()`関数はスペースを`+文字に`置換し、有効なURLクエリパラメータを形成します。`concat()`関数は完全なJSONリクエストボディを単一の文字列として構築します。

5. **認証**:`None`に設定（認証は既に Authorization ヘッダー経由で処理済み）。

![Configuring the Web activity settings](https://media.brightdata.com/2026/03/HyKXWHXKWe.png)#### スケジュールトリガーを追加

1. メインのパイプラインキャンバスに戻り、**\[トリガーの追加**\] &gt; \[**新規/編集**\]をクリックします。
2. **\[新規\]**を選択し、**毎日繰り返し**（例：UTC 6:00 AM）を設定します。
3. **\[OK\]** をクリックし、\[**すべて公開**\] をクリックしてパイプラインを保存およびデプロイします。

![Adding a schedule trigger](https://media.brightdata.com/2026/03/rkmIGrXYZl.png)すぐにテストするには、**\[今すぐトリガー\]**&gt;**\[OK\]** をクリックします。**\[監視**\] &gt;**\[パイプラインの実行**\] に移動して実行を確認します。パイプラインが成功し、データレイクの`raw/serp/`パス下に JSON ファイルが存在するはずです。

#### メインパイプラインキャンバスに戻る

デザイナー上部のブレッドクラムにあるパイプライン名（`IngestSERPData`）をクリックしてメインキャンバスに戻ります。ForEachアクティビティに子アクティビティが含まれていることを示すインジケーターが表示されているはずです。

#### スケジュールトリガーの追加

1. パイプラインデザイナー上部で \[**トリガーの追加**\] &gt; \[**新規/編集**\] をクリックします。
2. ドロップダウンから \[**新規**\] を選択します。
3. トリガーに名前を付け（例:`DailySERPTrigger`）、**タイプ**を**スケジュール**に設定し、以下を構成します:

- **開始日**: 今日の日付
- **繰り返し間隔**：毎日
- **時刻**:`6`(UTC 6:00 AM)

1. **\[OK\]**をクリックし、トリガーのパラメータを確認します。
2. Synapse Studioの上部にある「**すべて公開**」をクリックして、すべてを保存およびデプロイします。

#### パイプラインをテストする

スケジュールされたトリガーを待たずにパイプラインを即時実行するには：

1. パイプラインデザイナー上部の［**今すぐトリガー**］＞**［OK**］をクリックします。
2. 左メニューで \[**Monitor**\] &gt;**\[Pipeline runs**\] に移動します。
3. 実行が完了するまで待ちます。緑色の「**成功**」ステータスが表示されるはずです。
4. 実行をクリックし、ForEachアクティビティを展開して各Webアクティビティの実行を確認します。任意の`CallSERPAPI`反復をクリックすると、**出力**セクションにAPIレスポンス全体が表示されます。

![Successful pipeline run in Monitor](https://media.brightdata.com/2026/03/H14FVBQKWx.png)### ステップ4: Apache Sparkによるデータ収集と変換

ステップ3のWebアクティビティでは、SERP APIの統合が機能することと、スケジューリングによるパイプラインのオーケストレーションが実証されました。データ収集と変換のステップでは、Pythonを使用してSERP APIを直接呼び出し、生のレスポンスをデータレイクに保存し、分析可能なDeltaテーブルに変換するApache Sparkノートブックを使用します。

このアプローチはデータエンジニアリングの標準です。パイプラインがオーケストレーションとスケジューリングを担当し、ノートブックが実際のデータ処理ロジックを担当します。

#### Sparkノートブックの作成

1. **\[開発\]**&gt;**\[+\]**&gt; \[**ノートブック**\] に移動します。
2. 名前を`TransformSERPData` とします。
3. `sparkpool`Apache Spark プールにアタッチします。
4. 言語として**PySpark (Python)**が選択されていることを確認します。

![Creating a Spark notebook](https://media.brightdata.com/2026/03/rySiBSQKbl.png)#### セル1: SERPデータを収集しデータレイクに保存

最初のセルに以下のコードを追加します。各キーワードに対してBright Data SERP APIを呼び出し、生のJSONレスポンスをデータレイクに保存します：

```none
import requests
import json
from datetime import datetime
from notebookutils import mssparkutils

# 設定
API_KEY = "YOUR_BRIGHT_DATA_API_KEY"
ZONE = "YOUR_SERP_API_ZONE"
STORAGE_ACCOUNT = "YOUR_STORAGE_ACCOUNT"
import requests
import json
from datetime import datetime
from notebookutils import mssparkutils

# 各キーワードのSERPデータを収集
today = datetime.utcnow().strftime("%Y/%m/%d")

for keyword in KEYWORDS:
    # Bright Data SERP APIを呼び出す
    response = requests.post(
        "https://api.brightdata.com/request",
        headers={
            "Content-Type": "application/json",
            "Authorization": f"Bearer {API_KEY}"
        },
        json={
            "ゾーン": ZONE,
            "url": f"abfss://<a class="__cf_email__" data-cfemail="85f7e4f2c5f7e4f2abe1e3f6abe6eaf7e0abf2ecebe1eaf2f6abebe0f1" href="/cdn-cgi/l/email-protection">[email protected]</a>/serp/{today}/{file_name}.json"
        }
    )

    # 生JSONをデータレイクに保存
    file_name = keyword.replace(" ", "_")
    path = f"abfss://raw@{STORAGE_ACCOUNT}.dfs.core.windows.net/serp/{today}/{file_name}.json"
    mssparkutils.fs.put(path, response.text, True)
    print(f"保存済み: {path}")
```

`YOUR_BRIGHT_DATA_API_KEY`、`YOUR_SERP_API_ZONE`、`YOUR_STORAGE_ACCOUNT`は実際の値に置き換えてください。

> **セキュリティ上の注意点**: 本番環境では、APIキーをAzure Key Vaultに保管し、`mssparkutils.credentials.getSecret("your-keyvault-name", "BRIGHT_DATA_API_KEY")`を使用して取得してください。ハードコーディングは避けてください。

**Shift + Enter** を押してセルを実行します。各ファイルがデータレイクに保存されたことを確認する出力が表示されるはずです。

![Running the data collection cell](https://media.brightdata.com/2026/03/rk1Z98XYWg.png)#### セル2: SERPデータの変換とフラット化

新しいセルに、生のJSONを読み込み構造化されたテーブルに平坦化する変換コードを追加します:

```none
from pyspark.sql.functions import explode, col, current_timestamp
from pyspark.sql.types import StructType, StructField, StringType, IntegerType, ArrayType

# データレイクから生のSERPデータを読み込み
serp_raw = spark.read.option("multiline", "true").json(
    f"abfss://serppipelinelake@{STORAGE_ACCOUNT}.dfs.core.windows.net/serp/{today}/*.json")

# フラット化: general.queryからキーワードを抽出し、オーガニック結果を爆発処理
serプ_フラット化 = serp_raw.select(
    col("general.query").alias("keyword"),
    col("general.language").alias("language"),
    col("general.location").alias("location"),
    explode(col("organic")).alias("result")
).select(
    "keyword",
    "language",
    "location",
    col("result.rank").cast("int").alias("rank"),
    col("result.title").alias("title"),
    col("result.link").alias("url"),
    col("result.source").alias("source"),
    col("result.description").alias("snippet"),
    current_timestamp().alias("collected_at"))

# プレビューを表示
display(serp_flattened)
```

セルを実行してください。キーワード、順位、タイトル、URL、スニペット、収集時刻の列を持つ、平坦化されたSERP結果のプレビューテーブルが表示されるはずです。

![Preview of flattened SERP data](https://media.brightdata.com/2026/03/S16GaUmKbg.png)#### セル3: Deltaテーブルへの保存

3つ目のセルで、変換したデータをSQL分析用にDeltaテーブルに書き込みます:

```none
# 変換済みデータをデルタテーブルとしてデータレイクに書き込み
serp_flattened.write.format("delta").mode("append").save(
  f"abfss://<a class="__cf_email__" data-cfemail="2d5e485f5d5d445d4841444348414c46486d5e485f5d5d445d4841444348414c464803494b5e034e425f48035a444349425a5e03434859" href="/cdn-cgi/l/email-protection">[email protected]</a>/curated/serp_rankings"
)
print("curated/serp_rankings にデータが書き込まれました")
```

![Saving to Delta table](https://media.brightdata.com/2026/03/ryWvRLmtZl.png)#### ノートブックをパイプラインに追加

1. Integr**ate**ハブのIngestSERPDataパイプラインに戻`ります`。
2. キャンバス上に**ノートブック**アクティビティをドラッグし、ForEachアクティビティの外側かつ後方に配置します。
3. **設定**タブで`TransformSERPData`ノートブックを選択し、`sparkpool` に接続します。
4. ForEachアクティビティとNotebookアクティビティを**成功**依存関係（緑の矢印をドラッグ）で接続します。
5. **すべてを公開**をクリックして保存します。

![Adding the notebook to the pipeline](https://media.brightdata.com/2026/03/SJmYEwXYWg.png)これでパイプライン全体がエンドツーエンドで実行されます：SERPデータを収集 → データレイクに格納 → Deltaテーブルに変換。

### ステップ5: SQLでランキングを分析

データが Delta テーブルに格納されたら、Synapse**のサーバーレス SQL プール**を使用して直接クエリを実行できます。追加のプロビジョニングは不要です。サーバーレス SQL プールは、`OPENROWSET`関数を使用してデータレイクから Delta ファイルを直接読み取ります。

#### データベースを作成

**\[開発**\] &gt;**\[+\]**&gt;**\[SQLスクリプト\]** に移動します。スクリプトエディタ上部のSQLプールで**「組み込み**（サーバーレス）」が選択されていることを確認してください。以下のコマンドを実行して、SERP分析専用のデータベースを作成します：

```none
CREATE DATABASE serp_analytics;
```

データベース作成後、スクリプトエディタ上部のデータベースドロップダウンから「**serp\_analytics**」を選択して切り替えます。

#### 時間の経過に伴うランキング変化の追跡

新しいSQLスクリプトを作成（または既存のスクリプトをクリア）し、以下のクエリを実行します。これは`OPENROWSET`を使用してデータレイクから直接Deltaテーブルを読み込みます：

```none
-- 各キーワードとURLの順位が日ごとにどう変動するかを確認
SELECT
    keyword,
    url,
    rank,
    collected_at,
    rank - LAG(rank) OVER (PARTITION BY keyword, url ORDER BY collected_at) AS rank_change
FROM OPENROWSET(
    BULK 'abfss://<a class="__cf_email__" data-cfemail="2754425557574e57424b4e49424b464c426754425557574e57424b4e49424b464c4209434154094448554209504e494348505409494253" href="/cdn-cgi/l/email-protection">[email protected]</a>/curated/serp_rankings/',
    FORMAT = 'DELTA')
 AS serp_rankings
WHERE keyword = 'ウェブスクレイピングツール'
ORDER BY collected_at DESC, rank ASC;
```

![SQL query results showing ranking changes](https://media.brightdata.com/2026/03/BkxFhDmFWe.png)このクエリ`はLAGウィンドウ`関数を使用し、前回の収集以降に各URLの順位がどのように変化したかを算出します。`rank_changeが`負の値の場合、そのURLは順位を上げたことを意味します。

#### Power BI 用のサマリービューを作成する

Power BIでデータを容易に利用できるようにするため、キーワードごとの日次ランキングを要約するビューを作成します:

```none
CREATE VIEW daily_serp_summary AS
SELECT
    keyword,
    CAST(collected_at AS DATE) AS report_date,
    COUNT(*) AS total_results,
    AVG(CAST(rank AS FLOAT)) AS avg_rank,
    MIN(rank) AS best_rank
FROM OPENROWSET(
    BULK 'abfss://<a class="__cf_email__" data-cfemail="a4d7c1d6d4d4cdd4c1c8cdcac1c8c5cfc1e4d7c1d6d4d4cdd4c1c8cdcac1c8c5cfc18ac0c2d78ac7cbd6c18ad3cdcac0cbd3d78acac1d0" href="/cdn-cgi/l/email-protection">[email protected]</a>/curated/serp_rankings/',
    FORMAT = 'DELTA')
 AS serp_rankings
GROUP BY keyword, CAST(collected_at AS DATE);
```

**実行**をクリックします。これによりビュー（名前で参照可能な保存済みクエリ）が作成されます。動作を確認するには以下を実行します:

```none
SELECT * FROM daily_serp_summary;
```

キーワードごとに1日あたり1行が表示され、結果総数、平均順位、最高順位が確認できるはずです。

![Summary view query results](https://media.brightdata.com/2026/03/SkbTeOQtWl.png)### ステップ6: 結果の確認

パイプライン全体が実行された後、Synapse Studioから各ステージを確認できます。

**\[Monitor**\] ＞**\[Pipeline runs**\] に移動し、最新の実行をクリックして確認します。各ステップの視覚的表現が表示され、以下が確認できます：

- 各キーワードの反復処理を行う**ForEach**アクティビティと Web アクティビティの結果。
- Sparkジョブの実行詳細を含む**Notebook**アクティビティ。

**ForEach**アクティビティを展開し、各キーワードのSERPデータが正常に取得されたことを確認します。任意の`CallSERPAPI`Webアクティビティの実行をクリックすると、**入力セクション**と**出力**セクションでリクエスト/レスポンスの詳細を確認できます。

**データ**&gt;**リンク**&gt; ストレージアカウントに移動し、`raw/serp/`フォルダー内の生のJSONファイルを参照します。日付で分割されたフォルダーが確認でき、キーワードごとに1つのJSONファイルが存在します。

最後に、**開発**ハブを開き、`TransformSERPData`ノートブックに移動し、次のクエリを実行してデルタテーブルを確認します：

```none
SELECT * FROM curated.serp_rankings ORDER BY collected_at DESC LIMIT 20;
```

キーワード、順位、タイトル、URL、スニペット、収集タイムスタンプを含む構造化された行が表示されます。これは生の SERP 結果から構築された、クリーンで分析準備が整ったデータです。Bright Data の SERP API は、大規模な Google 検索結果の信頼性の高い取得、[ボット対策や](/blog/web-data/anti-scraping-techniques)レートリミッター[の回避](/blog/web-data/anti-scraping-techniques)、パイプラインにすぐに使える構造化データの返却という難しい部分を処理しました。

### さらなる応用

この例はキーワード順位トラッカーを示していますが、Synapseパイプラインは様々な方向へ拡張可能です：

- SERP API呼び出しをBright Dataの[Web Scraper API](/products/web-scraper)に置き換え、製品価格・レビュー・求人情報などを収集し、[競合情報](/blog/web-data/best-price-intelligence-tools)ダッシュボード[を](/blog/web-data/best-price-intelligence-tools)構築できます。
- 2つ目のSparkノートブックを追加し、SERPスニペットの[感情分析](/blog/web-data/sentiment-analysis-explained)を実行して、各結果を肯定的または否定的な表現でスコアリングします。
- キュレーションされたDeltaテーブルをAzure Machine Learningに接続し、ランキング変動の予測や新興検索トレンドの特定といった予測分析を実行します。
- SERPデータをAzure Data Lakeに保存しつつ、機密性の高い内部データはオンプレミスに保持する[ハイブリッドクラウドアーキテクチャを](/blog/web-data/hybrid-cloud-data-integration)構築し、Synapseがフェデレーテッドクエリで両方を照会できるようにします。
- 変換されたデータを[Azure AI Foundry](/blog/ai/azure-ai-foundry-with-serp-api)のプロンプトフローに転送し、LLMを活用した分析を実行。SynapseのデータエンジニアリングとAI FoundryのAI機能を統合。
- [LangChain](/blog/ai/web-scraping-with-langchain-and-bright-data)や[CrewAI](/blog/ai/crewai-with-serp-api)などのツールと連携し、キュレーション済みSERPデータを活用するエージェント型ワークフローを構築します。

可能性は事実上無限大です！

## まとめ

このブログ記事では、Bright DataのSERP APIを使用してGoogleから最新の検索結果を取得し、Azure Synapse Analytics内の完全なデータパイプラインに統合する方法を学びました。

ここで示したパイプラインは、SERPデータを継続的に収集し、分析可能なテーブルに変換し、SQLクエリやPower BIダッシュボードを通じてインサイトを提供する自動化されたキーワードランキングトラッカーを構築したい方に最適です。AIファーストのプロンプトエンジニアリングやRAGワークフローに理想的なAzure AI Foundryのアプローチとは異なり、Azure Synapse Analyticsはビジネスインテリジェンスや分析のための大規模なデータ取り込み、変換、ウェアハウジングに優れています。

より高度なデータパイプラインを作成するには、ライブWebデータの取得・[検証](/products/web-scraper)・[変換を実現するBright Dataのウェブスクレイピングツール一式をご](/products/web-scraper)活用ください。[データパイプラインのアーキテクチャパターン](/blog/proxy-101/data-pipeline-architecture)に関する詳細な解説は、Bright Dataブログで基礎から解説しています。

[今すぐBright Dataの無料アカウントに登録し](/)、AI対応のWebデータソリューションを実際に試してみましょう！



お問い合わせ無料トライアル![google social icon](/wp-content/themes/brightdata/assets/images/ic_google.svg)









 目次







日本企業向けデータソリューション

日本のトップ企業が信頼するスケーラブルなウェブデータプラットフォーム。日本語24時間サポート、GDPR・個人情報保護法準拠、日本企業20社以上の導入実績。

[詳細を見る](https://brightdata.jp/solutions/data-solutions-for-japanese-companies "詳細を見る")







 [ ](https://news.ycombinator.com/submitlink?t=Azure+Synapse+Analytics+%E3%81%A8+Web+Data+Pipelines+%E3%81%AE%E9%80%A3%E6%90%BA&u=https://brightdata.jp/blog/ai/azure-synapse-analytics-with-bright-data) [ ](https://www.linkedin.com/shareArticle?mini=true&title=Azure+Synapse+Analytics+%E3%81%A8+Web+Data+Pipelines+%E3%81%AE%E9%80%A3%E6%90%BA&url=https://brightdata.jp/blog/ai/azure-synapse-analytics-with-bright-data) [ ](http://www.reddit.com/submit?title=Azure+Synapse+Analytics+%E3%81%A8+Web+Data+Pipelines+%E3%81%AE%E9%80%A3%E6%90%BA&url=https://brightdata.jp/blog/ai/azure-synapse-analytics-with-bright-data)







##  あなたは下記にもご興味がおありかもしれません

 [ ![OpenHuman with Bright Data](https://media.brightdata.jp/2026/09/OpenHuman-with-Bright-Data.png) ](https://brightdata.jp/blog/ai/openhuman-with-bright-data "Bright Data CLIを通じたOpenHumanにおける本番対応ウェブアクセス")

 [AI



 ![Antonello Zanini](https://media.brightdata.jp/2022/12/Antonello-Zanini-2-50x50.jpg)

Antonello Zanini

Technical Writer





### Bright Data CLIを通じたOpenHumanにおける本番対応ウェブアクセス

Bright Data CLIをOpenHumanに統合して、AIエージェント向けの本番対応ウェブアクセスとデータ収集を実現します。



 09-Sep-2026

 3 分読

 ](https://brightdata.jp/blog/ai/openhuman-with-bright-data)

 [ ![Multimodal Web Scraping with MiniMax](https://media.brightdata.jp/2026/09/Multimodal-Web-Scraping-with-MiniMax.png) ](https://brightdata.jp/blog/%e3%82%a6%e3%82%a7%e3%83%96%e3%83%87%e3%83%bc%e3%82%bf/multimodal-web-scraping-with-minimax "MiniMaxによるマルチモーダルウェブスクレイピング")

 [ウェブデータ



 ![Antonello Zanini](https://media.brightdata.jp/2022/12/Antonello-Zanini-2-50x50.jpg)

Antonello Zanini

Technical Writer





### MiniMaxによるマルチモーダルウェブスクレイピング

Bright Data Web UnlockerとMiniMax M3ビジョンを組み合わせて、画像やウェブページのスクリーンショットから構造化データを抽出します。



 09-Sep-2026

 1 分読

 ](https://brightdata.jp/blog/%e3%82%a6%e3%82%a7%e3%83%96%e3%83%87%e3%83%bc%e3%82%bf/multimodal-web-scraping-with-minimax)

 [ ![The 10 Best CLI Tools for Codex in 2026](https://media.brightdata.jp/2026/08/The-10-Best-CLI-Tools-for-Codex-in-2026.png) ](https://brightdata.jp/blog/ai/best-cli-tools-for-codex "2026年版 Codex向けCLIツール10選 – テスト＆ランキング")

 [AI



 ![Daniel Shashko](https://media.brightdata.jp/2022/04/Daniel-Shashko-2-50x50.png)

Daniel Shashko

Web Data &amp; AI Expert





### 2026年版 Codex向けCLIツール10選 – テスト＆ランキング

Codexをより速く、より有能にする10のCLIツール。サンドボックス内から実際のウェブアクセスを提供するBright Data CLIから始まります。



 06-Sep-2026

 4 分読

 ](https://brightdata.jp/blog/ai/best-cli-tools-for-codex)
