【MCP Server】LangChain からBigQuery のデータに連携しよう!

加藤龍彦
加藤龍彦
デジタルマーケティング
LangChain とCData Connect AI MCP Server で BigQuery へのリアルタイムアクセスを実現。自然言語クエリでデータ探索できる AI ワークフローを構築する方法をご紹介します。

LangChain は、開発者やデータエンジニア、AI 実践者が LLM、ツール、API、データコネクタを組み合わせて AI 活用アプリケーションやワークフローを構築するためのフレームワークです。LangChain と CData Connect AI を組み込みの MCP Server を通じて統合することで、ワークフローからライブの BigQuery にリアルタイムで簡単にアクセスして対話できるようになります。

CData Connect AI は、BigQuery のデータに接続するための専用クラウド間インターフェースを提供します。CData Connect AI Remote MCP Server により、Google ADK エージェントと BigQueryの間でセキュアな通信が可能になります。これにより、ネイティブ対応データベースへのデータレプリケーションを必要とせずに、エージェントから BigQuery のデータの読み取りや操作を実行できます。CData Connect AIは最適化されたデータ処理機能を備えており、フィルタや JOIN を含むサポート対象のすべての SQL 操作を効率的に BigQueryへ直接送信します。サーバーサイド処理を活用することで、要求されたBigQuery のデータ を迅速に取得できます。

この記事では、CData Connect AI での BigQuery 接続の設定、LangChain への MCP サーバーの登録、そして BigQuery をリアルタイムでクエリするワークフローの構築方法をご紹介します。

前提条件

BigQuery データ連携について

CData は、Google BigQuery のライブデータへのアクセスと統合を簡素化します。お客様は CData の接続機能を以下の目的で活用しています:

  • OAuth、OAuth JWT、GCP インスタンスなど、すぐに使える幅広い認証スキームのサポートにより、BigQuery へのアクセスを簡素化します。
  • BigQuery と他のアプリケーション間の双方向データアクセスにより、データワークフローを強化します。
  • SQL ストアドプロシージャを通じて、ジョブの開始・取得・キャンセル、テーブルの削除、ジョブロードの挿入など、主要な BigQuery アクションを実行できます。

多くの CData のお客様は、Google BigQuery をデータウェアハウスとして使用しており、CData ソリューションを使用して、別々のソースからビジネスデータを BigQuery に移行し、包括的な分析を行っています。また、BigQuery データの分析やレポート作成に当社の接続機能を使用するお客様も多く、両方のソリューションを使用しているお客様も多数います。

CData が Google BigQuery 体験をどのように向上させるかについての詳細は、ブログ記事をご覧ください:https://jp.cdata.com/blog/what-is-bigquery


はじめに


ステップ 1:LangChain 用の BigQuery 接続を設定する

それでは早速、LangChain から BigQuery にアクセスできるようにしていきましょう。まず、CData Connect AI で BigQuery 接続を作成します。この接続は、その後リモート MCP サーバーを通じて LangChain に公開されます。

  1. Connect AI にログインし、「Sources」をクリックして「+ Add Connection」をクリックします
  2. 利用可能なデータソースから「BigQuery」を選択します
  3. BigQuery に接続するために必要な認証情報を入力しましょう。

    BigQuery 接続プロパティの取得・設定方法

    Google BigQuery はOAuth 認証標準を使用します。個々のユーザーとしてGoogle API にアクセスするには、組み込みクレデンシャルを使うか、OAuth アプリを作成します。

    OAuth では、Google Apps ドメインのユーザーとしてサービスアカウントを使ってアクセスすることもできます。サービスカウントでの認証では、OAuth JWT を取得するためのアプリケーションを登録する必要があります。

    OAuth 値に加え、DatasetId、ProjectId を設定する必要があります。詳細はヘルプドキュメントの「はじめに」を参照してください。

  4. 「Create & Test」をクリックします
  5. 認証が完了したら、BigQuery 接続の「Permissions」タブを開き、必要に応じてユーザーベースの権限を設定します

パーソナルアクセストークン(PAT)を生成する

LangChain は、アカウントのメールアドレスとパーソナルアクセストークン(PAT)を使用して Connect AI に認証します。アクセス制御の粒度を維持するために、統合ごとに個別の PAT を作成することをおすすめします。

  1. Connect AI で、右上の歯車アイコンを選択して「Settings」を開きます
  2. 「Access Tokens」で、「Create PAT」を選択します
  3. トークンのわかりやすい名前を付けて、「Create」を選択します
  4. トークンをコピーして安全に保管してください。PAT は作成時にのみ表示されます

これで BigQuery 接続の設定と PAT の生成が完了しました。LangChain から CData MCP サーバーを通じて BigQuery に接続する準備が整いました。

注:Connect AI の「Integrations」セクションの「LangChain」から PAT を生成することもできます。「Connect」→「 Create PAT」をクリックするだけで生成できます。

ステップ 2:LangChain で MCP サーバーに接続する

続いて、LangChain をCData Connect AI のリモートMCP サーバー に接続していきましょう。推論に OpenAI(ChatGPT)を使用するには、MCP サーバーエンドポイントと認証情報を config.py ファイルで設定します。これらを設定することで、LangChain が MCP サーバーツールを呼び出せるようになり、OpenAI が自然言語での推論を処理してくれます。

  1. LangChain MCP 用のフォルダを作成します
  2. フォルダ内にconfig.pylangchain.py の2つの Python ファイルを作成します。
  3. config.py で、MCP サーバーの認証と URL を定義する Config クラスを作成します。Base64 エンコードされた CData Connect AI のユーザー名と PAT(前提条件で取得したもの)を指定する必要があります。
     
    class Config: 
          MCP_BASE_URL = "https://mcp.cloud.cdata.com/mcp"   # MCP Server の URL 
          MCP_AUTH = "base64encoded(EMAIL:PAT)"   # Base64 エンコードされた Connect AI の Email:PAT 
    

    注:Base64 エンコードツールを使用して、MCP_AUTH の Base64 エンコード版を作成できます。

  4. langchain.py で、MCP サーバーと MCP クライアントを設定して、ツールとプロンプトを呼び出します:
     
    """ 
    LangChain ReAct エージェントと CData Connect AI MCP サーバーを統合します。
    このスクリプトは、ツールの取得、フィルタリング、LLM を使用したエージェントベースの推論を実行します。
    """ 
    
    import asyncio 
    from langchain_mcp_adapters.client import MultiServerMCPClient 
    from langchain_openai import ChatOpenAI 
    from langgraph.prebuilt import create_react_agent 
    from config import Config 
    
    async def main(): 
        # 1 つ以上のサーバー URL で MCP クライアントを初期化
        mcp_client = MultiServerMCPClient( 
            connections={ 
                "default": {  # お好きな名前でOKです
                    "transport": "streamable_http", 
                    "url": Config.MCP_BASE_URL, 
                    "headers": {"Authorization": f"Basic {Config.MCP_AUTH}"}, 
                } 
            } 
        ) 
    
        # サーバーによって公開されているリモート MCP ツールを読み込む
        all_mcp_tools = await mcp_client.get_tools() 
        print("検出された MCP ツール:", [tool.name for tool in all_mcp_tools]) 
    
        # ReAct スタイルのエージェントを作成して実行
        llm = ChatOpenAI( 
            model="gpt-4o",  
            temperature=0.2, 
            api_key="YOUR_OPEN_API_KEY"  # ここに OpenAI API キーを使用します(https://platform.openai.com/ で確認できます)
        ) 
    
        agent = create_react_agent(llm, all_mcp_tools) 
    
        user_prompt = "[rootadoname]1 で利用可能なテーブルはいくつありますか?"  # 必要に応じてプロンプトを変更してください
        print(f"
    ユーザープロンプト: {user_prompt}") 
    
        # エージェントに MCP ツールを使用するように求めるプロンプトを送信
        response = await agent.ainvoke( 
            {"messages": [{"role": "user", "content": (user_prompt),}]} 
        ) 
    
        # エージェントの最終応答を出力
        final_msg = response["messages"][-1].content 
        print("エージェントの最終応答:", final_msg) 
    
    if __name__ == "__main__": 
        asyncio.run(main()) 
    

ステップ 3:LangChain と LangGraph パッケージをインストールする

それでは、LangChain を CData Connect AI MCP と組み合わせて使用し、推論に OpenAI を統合するために必要なPython パッケージをインストールしていきましょう。

プロジェクトのターミナルで次のコマンドを実行してください。

 
pip install langchain-mcp-adapters langchain-openai langgraph 

ステップ 4:LangChain を使用して BigQuery にプロンプトを送信する(MCP サーバー経由)

  1. インストールが完了したら、
    python langchain.py
    を実行してスクリプトを実行します
  2. スクリプトは MCP サーバーに接続し、接続されたデータをクエリするために利用可能な CData Connect AI MCP ツールを検出します
  3. プロンプトを入力します(例:「BigQuery で利用可能なテーブルはいくつありますか?」)
  4. それに応じて、エージェントが結果を返します

CData Connect AI でビジネスシステムのデータ活用を今すぐスタート

いかがでしたか?LangChain から BigQuery へのデータ接続が簡単に完了したのではないでしょうか。業務に使えそう、と感じてくださった方は、14 日間の無償トライアルで AI ツールからビジネスシステムへのリアルタイムデータ接続をぜひお試しください。

はじめる準備はできましたか?

CData Connect AI の詳細、または無料トライアルにお申し込みください:

無料トライアル お問い合わせ