こんにちは!インサイトテクノロジーの松尾です。
本記事では Denodo を活用して Google 検索結果をデータソースとして利用する方法 を紹介します。
Denodo 社の公式ナレッジベースでも紹介されているため、英語が得意な方は以下のリンクも参考にしてください。
Denodo を使うと Web API でアクセスした結果をデータソースとして設定し、それを SQL でアクセスできるようにすることができます。すなわち Web API による Google 検索の結果をデータソースとして設定し、SQL で簡単にアクセス できるようになります。
例えば、特定のデータに基づいて Google 検索を行う場合、手作業で一つひとつ検索するのは面倒ですよね?
そんなときこそ、今回紹介する方法が役立ちます!
次のセクションでは、具体的な設定手順を紹介していきます。
手順
以下の流れで進めます。
- Google 検索 API の準備
- Denodo でデータソースと基本ビューの作成
Google 検索 API の準備
まずは Google 検索 API(プログラム可能検索エンジン) を準備します。
公式ドキュメント: プログラム可能検索エンジンの作成
① 検索エンジンの作成
プログラム可能検索エンジンとは、特定の Web サイトやブログなどを対象に、カスタマイズ可能な検索機能を提供する Google のサービスです。
Google の手順に従い、検索エンジンを作成します。
作成後、cx=
で始まる 検索エンジン ID を取得します。
この ID は API を呼び出す際に必要になります。
② API キーの取得
次に、API を利用するためのキーを取得します。
公式ドキュメント: API キーの取得手順
Google 検索 API は 1 日 100 件まで無料 で利用可能です。
「キーを取得」を選択後、プロジェクト名を入力し、利用条件に同意の上、「NEXT」を選択します。
キーを表示して取得します。
③ 検索エンジン ID & API キーの準備完了!
これで、Google 検索 API を使用するための エンジン ID(cx=) と API キー が準備できました。
次のステップでは、Denodo にデータソースとして登録していきます!
Denodo でデータソースと基本ビューを作成
続いて、Denodo 側で Google 検索 API をデータソースとして設定 します。
① JSON (HTTP/OpenAPI) タイプのデータソースを作成
- [データソース] → [JSON (HTTP/OpenAPI)] を選択
- 以下の情報を入力
- 名前: (データソース名を適当に設定)
- ベース URL:
https://www.googleapis.com/customsearch/v1
- 改ページの設定
- サービスは改ページされたデータを返します: 有効化
- リクエストの最大数:
10
- ページインデックス: 選択
- ページサイズ用の URL 内のパラメータ:
count
- ページサイズ:
10
- 次のレコードに対する URL 内のパラメータ:
start
- 最初のレコードのインデックス:
1
- 次のリクエストに対するオフセット:
10
- ページサイズ用の URL 内のパラメータ:
② データソースの保存
- 「保存」を選択
API の実行に必要なパラメータを設定していないため、ここでは「コネクションをテスト」を実行してもエラーとなります。
③ 基本ビューの作成
- 「基本ビューを作成」を選択
- 以下の情報を設定
- 相対URL
?key=@key&cx=@cx&q=@word
- 相対URL
④ コネクションテスト
- 「コネクションをテスト」 を選択
- 接続情報、クエリ文字列を入力し、「OK」を選択
⑤ タプルルートの設定
- [タプルルート] をクリック
- JSON ルートに
/JSONFile/items
を設定
ここでタプルルートを指定することで、JSON データを 1 階層だけフラット化できます。(※1段階のみ)
⑥ 基本ビューの保存
- 右上の「基本ビューを作成」 を選択
- データソース名と同じ名称の基本ビューが作成 される
- 「編集」をクリックすれば、基本ビューの名称を変更可能
⑦ クエリの実行
基本ビューからクエリを実行すると Google 検索 API からデータを取得できます!
WHERE 句でパラメータと検索文字列を指定すると、検索結果が テーブル形式 で返ってきます。
⑧ パラメータを事前に設定したビューの作成
key
と cx
は常に変更するものではないので、それらをあらかじめ指定したビューを作っておきましょう。今作成した基本ビューに対する選択ビューで、「WHERE 条件」にあらかじめ設定しておきます。
そして、出力も以下のように絞っておきます。
作成されたビューはクエリを実行する際には以下のように word
のみを指定する必要があります。
実行結果は以下のようになりましたね!
おわりに
本記事では、Denodo から Google 検索の結果をデータソースとして利用する方法 を紹介しました。
Google 検索の結果をそのままデータソースとして活用するケースは限定的かもしれませんが、 「検索エンジンでさえも SQL でクエリできるデータソースになり得る」 というのは、なかなか面白い発想ではないでしょうか? そして Denodo にデータソースとして登録することにより Google 検索結果を SQL で扱える ようになります。
-- VQL による Google 検索
SELECT * FROM admin.p_bv_google_insight_technology_web WHERE word = 'denodo' LIMIT 10;
Denodo の強みは、SQL インターフェースを通じて外部ツールからもデータへアクセスできることです。例えば、DBeaver などのツールから Denodo に接続してクエリを実行して確認することができます。これはクエリを実行していますが、実際には Google 検索を実行しているのです。
もう少し詳しく知りたい方へ
弊社 インサイトテクノロジー は、Denodo 社の公式パートナーとして、Denodo Platform の紹介、販売、導入支援を行っています。ご興味のある方は、以下のリンクから弊社または Denodo 社へお問い合わせください。
また、
- 「これからデータ統合基盤を整備したい」
- 「どのようにデータを統合すればよいか迷っている」
- 「現在進行中のプロジェクトで特定の課題がある(例: Snowflake に SAP からリアルタイムデータを取り込みたい)」
といったお悩みや具体的なご相談も、ぜひお気軽にお問い合わせください。