各製品の資料を入手。
詳細はこちら →SQLAlchemy ORM を使って、Python でBing Search のデータに連携する方法
CData Python Connector を使って、Python アプリケーションおよびスクリプトからSQLAlchemy 経由でBing Search にOR マッピング可能に。
最終更新日:2023-09-23
この記事で実現できるBing Search 連携のシナリオ
こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。
Pythonエコシステムには、多くのモジュールがあり、システム構築を素早く効率的に行うことができます。CData Python Connector for Bing は、pandas、Matplotlib モジュール、SQLAlchemy ツールキットから使用することで Bing Search にデータ連携するPython アプリケーションを構築し、Bing Search のデータを可視化できます。 本記事では、SQLAlchemy でBing Search に連携して、データを取得、 する方法を説明します。
CData Python Connectors の特徴
CData Python Connectors は、以下のような特徴を持った製品です。
- Bing Search をはじめとする、CRM、MA、会計ツールなど多様なカテゴリの270種類以上のSaaS / オンプレデータソースに対応
- Python をはじめとする多様なデータ分析・BI ツールにBing Search のデータを連携
- ノーコードでの手軽な接続設定
CData Python Connectors では、1.データソースとしてBing Search の接続を設定、2.Python からPython Connectors との接続を設定、という2つのステップだけでデータソースに接続できます。以下に具体的な設定手順を説明します。
必要なモジュールのインストール
pip でSQLAlchemy ツールキットをインストールします:
pip install sqlalchemy
モジュールのインポートを忘れずに行います:
import sqlalchemy
Python でBing Search のデータをモデル化
次は、接続文字列で接続を確立します。create_engine 関数を使って、Bing Search のデータに連携するEngne を作成します。
engine = create_engine("bing///?APIKey=MyAPIKey")
Bing 接続プロパティの取得・設定方法
Bing に接続するには、ApiKey 接続プロパティを設定します。 API キーを取得するには、Bing Web Search API が Azure Cognitive Services からBing Search Services に移動したため、Azure Marketplace からBing Search リソースを作成します。 リソースが作成されると、サブスクリプションキー(API キー)が発行されます。これは、接続設定のAPIKey プロパティに使用します。
Azure Marketplace 経由でのBing Search リソースの作成
- Microsoft アカウントでAzure ポータルにサインインします。アカウントを取得していない場合は、作成をクリックします。
- 検索バーにBing と入力し、Marketplace から適切なBing サービスを選択します。
- サブスクリプションの詳細を選択し、無料使用版をクリックしてトライアルに登録するか、サブスクリプションをお持ちでない場合は購入します。
- 既存のリソースグループを選択するか、新しいグループを作成してリソースを構成します。
- インスタンスの詳細で、名前、リージョンを入力し、該当する場合は、Free F1 の価格ティアまたは別のパッケージを選択します。
- 契約条件に同意し、確認と作成をクリックします。デプロイが完了したら、リソースへ移動をクリックします。
- API キーを取得するには、左側のメニューでキーとエンドポイントをクリックします。このキーをAPIKey プロパティに使用します。
詳細はヘルプドキュメントの「はじめに」を参照してください。
Bing Search のデータのマッピングクラスの宣言
接続を確立したら、OR マッパーでモデル化するテーブルのマッピングクラスを宣言します。本記事では、VideoSearch テーブルを使います。sqlalchemy.ext.declarative.declarative_base 関数を使って、新しいクラスにフィールド(カラム)を定義します。
base = declarative_base() class VideoSearch(base): __tablename__ = "VideoSearch" Title = Column(String,primary_key=True) ViewCount = Column(String) ...
Bing Search のデータをクエリ
マッピングクラスができたので、セッションオブジェクトを使ってデータソースをクエリすることができます。セッションにEngine をバインドして、セッションのquery メソッドにマッピングクラスを提供します。
query メソッドを使う
engine = create_engine("bing///?APIKey=MyAPIKey") factory = sessionmaker(bind=engine) session = factory() for instance in session.query(VideoSearch).filter_by(SearchTerms="WayneTech"): print("Title: ", instance.Title) print("ViewCount: ", instance.ViewCount) print("---------")
ほかの方法としては、execute メソッドを適切なテーブルオブジェクトに使うことが可能です。以下のコードはアクティブなsession に対して有効です。
execute メソッドを使う
VideoSearch_table = VideoSearch.metadata.tables["VideoSearch"] for instance in session.execute(VideoSearch_table.select().where(VideoSearch_table.c.SearchTerms == "WayneTech")): print("Title: ", instance.Title) print("ViewCount: ", instance.ViewCount) print("---------")
より複雑なクエリとして、JOIN、集計、Limit などが利用可能です。詳細はヘルプドキュメントをご覧ください。
Bing Search からPython へのデータ連携には、ぜひCData Python Connector をご利用ください
このようにCData Python Connector と併用することで、270を超えるSaaS、NoSQL データをPython からコーディングなしで扱うことができます。30日の無償評価版が利用できますので、ぜひ自社で使っているクラウドサービスやNoSQL と合わせて活用してみてください。
日本のユーザー向けにCData Python Connector は、UI の日本語化、ドキュメントの日本語化、日本語でのテクニカルサポートを提供しています。