QueryData をアプリケーションと統合する

このチュートリアルでは、 Google Cloud コンソールを使用して Bigtable で QueryData を設定して使用し、アプリケーションと統合する方法について説明します。コンテキスト セット ファイルを作成し、コンテキスト セット ファイルを使用するコンテキスト セットを作成します。MCP ツールボックスを使用して Conversational Analytics API の QueryData メソッドを呼び出し、自然言語の質問に対する SQL クエリを生成して、アプリケーションに統合する方法を学習します。

詳細については、QueryData の概要をご覧ください。

目標

このチュートリアルでは、次の目標を達成するための手順を説明します。

  • データベース テーブルを作成し、データを入力します。
  • コンテキスト エンジニアリング エージェントを使用してコンテキスト セット ファイルをビルドします。
  • コンテキスト セットを作成し、コンテキスト セット ファイルをアップロードします。
  • Bigtable Studio で QueryData をテストし、SQL クエリを生成します。
  • MCP ツールボックスの Gemini データ分析 QueryData ツールを使用して、QueryData をアプリケーションに統合します。
  • 値検索クエリを使用して、LLM レスポンスにグラウンディングを追加します。

費用

このドキュメントでは、課金対象である次の Google Cloudコンポーネントを使用します。

料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを算出できます。

新規の Google Cloud ユーザーは無料トライアルをご利用いただける場合があります。

このドキュメントのタスクを完了したら、作成したリソースを削除して、それ以上の請求が発生しないようにします。詳細については、クリーンアップをご覧ください。

始める前に

コンテキスト セットを作成する前に、次の前提条件を満たす必要があります。

必要なサービスを有効にする

プロジェクトで次のサービスを有効にします。

Bigtable インスタンスを準備する

Bigtable インスタンスが使用可能であることを確認します。詳細については、インスタンスの作成をご覧ください。

cbt CLI をインストールする

cbt CLI をインストールして構成し、テーブルを作成してデータを入力します。詳細については、cbt CLI の概要をご覧ください。

必要なロールと権限

  • インスタンス レベルまたはプロジェクト レベルで IAM ユーザーに bigtable.admin ロールを付与します。詳細については、IAM による Bigtable のアクセス制御をご覧ください。
  • プロジェクト レベルで IAM ユーザーに geminidataanalytics.queryDataUser ロールを付与します。詳細については、プロジェクトの IAM ポリシー バインディングを追加するをご覧ください。
  • コンテキスト セットを作成、アップロード、管理するには、プロジェクト レベルで IAM ユーザーに Dataplex Catalog 編集者(roles/dataplex.catalogEditor)または Dataplex Catalog 管理者(roles/dataplex.catalogAdmin)のロールを付与します。詳細については、コンテキスト セットの権限をご覧ください。

flights と airports のスキーマとテーブルを作成する

このセクションでは、このチュートリアルで使用する flights データベース テーブルと airports データベース テーブルを作成します。

  1. ~/.cbtrc でデフォルトのプロジェクトとインスタンスを構成します。
    echo project = PROJECT_ID >> ~/.cbtrc
    echo instance = INSTANCE_ID >> ~/.cbtrc
    ここで:
    • PROJECT_ID: 実際の Google Cloud プロジェクト ID。
    • INSTANCE_ID: Bigtable インスタンス ID。
  2. 次のコマンドを実行して、airports テーブルと info 列ファミリーを作成します。

    cbt createtable airports "families=info"
  3. 次のコマンドを実行して、flights テーブルと info 列ファミリーを作成します。

    cbt createtable flights "families=info"

flights テーブルと airports テーブルにデータを入力する

このセクションでは、cbt import コマンドを使用して flights テーブルと airports テーブルにデータを入力します。

  1. 次の内容のファイルを airports.csv という名前で作成します。

    ,info,info,info,info
    ,iata,name,city,country
    AIRPORT#3249,BOS,General Edward Lawrence Logan International Airport,Boston,United States
    AIRPORT#3257,OGG,Kahului Airport,Kahului,United States
    AIRPORT#3259,MCI,Kansas City International Airport,Kansas City,United States
    AIRPORT#3263,PHX,Phoenix Sky Harbor International Airport,Phoenix,United States
    AIRPORT#3270,SFO,San Francisco International Airport,San Francisco,United States
    AIRPORT#3285,LAX,Los Angeles International Airport,Los Angeles,United States
    AIRPORT#3287,CLE,Cleveland Hopkins International Airport,Cleveland,United States
    AIRPORT#3295,EWR,Newark Liberty International Airport,Newark,United States
    AIRPORT#3296,BOI,Boise Air Terminal/Gowen Field,Boise,United States
    AIRPORT#3303,DAL,Dallas Love Field,Dallas,United States
    AIRPORT#3315,KOA,Ellison Onizuka Kona International At Keahole Airport,Kona,United States
    AIRPORT#3321,DCA,Ronald Reagan Washington National Airport,Washington,United States
    AIRPORT#3336,SLC,Salt Lake City International Airport,Salt Lake City,United States
    AIRPORT#3350,IAH,George Bush Intercontinental Houston Airport,Houston,United States
    AIRPORT#3370,PIT,Pittsburgh International Airport,Pittsburgh,United States
    AIRPORT#3376,MIA,Miami International Airport,Miami,United States
    AIRPORT#3377,SEA,Seattle Tacoma International Airport,Seattle,United States
    AIRPORT#3382,LGB,Long Beach /Daugherty Field/ Airport,Long Beach,United States
    AIRPORT#3385,IND,Indianapolis International Airport,Indianapolis,United States
    AIRPORT#3402,LIH,Lihue Airport,Lihue,United States
    AIRPORT#3421,SAT,San Antonio International Airport,San Antonio,United States
    AIRPORT#3426,RDU,Raleigh Durham International Airport,Raleigh-durham,United States
    AIRPORT#3436,TUS,Tucson International Airport,Tucson,United States
    AIRPORT#3444,BUR,Bob Hope Airport,Burbank,United States
    AIRPORT#3445,DTW,Detroit Metropolitan Wayne County Airport,Detroit,United States
    AIRPORT#3470,DFW,Dallas Fort Worth International Airport,Dallas-Fort Worth,United States
    AIRPORT#3473,AUS,Austin Bergstrom International Airport,Austin,United States
    AIRPORT#3478,STL,St Louis Lambert International Airport,St. Louis,United States
    AIRPORT#3482,ATL,Hartsfield Jackson Atlanta International Airport,Atlanta,United States
    AIRPORT#3487,FAT,Fresno Yosemite International Airport,Fresno,United States
    AIRPORT#3514,IAD,Washington Dulles International Airport,Washington,United States
    AIRPORT#3517,MKE,General Mitchell International Airport,Milwaukee,United States
    AIRPORT#3520,PDX,Portland International Airport,Portland,United States
    AIRPORT#3528,HNL,Daniel K Inouye International Airport,Honolulu,United States
    AIRPORT#3531,SAN,San Diego International Airport,San Diego,United States
    AIRPORT#3534,ONT,Ontario International Airport,Ontario,United States
    AIRPORT#3547,MDW,Chicago Midway International Airport,Chicago,United States
    AIRPORT#3551,DEN,Denver International Airport,Denver,United States
    AIRPORT#3552,PHL,Philadelphia International Airport,Philadelphia,United States
    AIRPORT#3597,JFK,John F Kennedy International Airport,New York,United States
    AIRPORT#3607,RNO,Reno Tahoe International Airport,Reno,United States
    AIRPORT#3617,SMF,Sacramento International Airport,Sacramento,United States
    AIRPORT#3619,COS,City of Colorado Springs Municipal Airport,Colorado Springs,United States
    AIRPORT#3639,PSP,Palm Springs International Airport,Palm Springs,United States
    AIRPORT#3649,BWI,Baltimore/Washington International Thurgood Marshall Airport,Baltimore,United States
    AIRPORT#3658,MSP,Minneapolis-St Paul International/Wold-Chamberlain Airport,Minneapolis,United States
    AIRPORT#3661,MSY,Louis Armstrong New Orleans International Airport,New Orleans,United States
    AIRPORT#3667,SNA,John Wayne Airport-Orange County Airport,Santa Ana,United States
    AIRPORT#3676,CLT,Charlotte Douglas International Airport,Charlotte,United States
    AIRPORT#3677,LAS,McCarran International Airport,Las Vegas,United States
    AIRPORT#3678,MCO,Orlando International Airport,Orlando,United States
    AIRPORT#3742,MRY,Monterey Peninsula Airport,Monterey,United States
    AIRPORT#3743,SBA,Santa Barbara Municipal Airport,Santa Barbara,United States
    AIRPORT#3875,RDD,Redding Municipal Airport,Redding,United States
    AIRPORT#3876,EUG,Mahlon Sweet Field,Eugene,United States
    AIRPORT#3878,MFR,Rogue Valley International Medford Airport,Medford,United States
    AIRPORT#3880,RDM,Roberts Field,Redmond-Bend,United States
    AIRPORT#4111,ACV,California Redwood Coast-Humboldt County Airport,Arcata CA,United States
    AIRPORT#4419,CEC,Jack Mc Namara Field Airport,Crescent City,United States
    AIRPORT#4460,SBP,San Luis County Regional Airport,San Luis Obispo,United States
    AIRPORT#4768,PSC,Tri Cities Airport,Pasco,United States
    AIRPORT#5088,SUN,Friedman Memorial Airport,Hailey,United States
    AIRPORT#5305,ASE,Aspen-Pitkin Co/Sardy Field,Aspen,United States
    AIRPORT#5362,MMH,Mammoth Yosemite Airport,Mammoth Lakes,United States
  2. airports.csv ファイルから airports テーブルにデータをインポートします。

    cbt import airports airports.csv
  3. 次の内容のファイルを flights.csv という名前で作成します。

    ,info,info,info,info,info,info,info,info,info,info
    ,airline,flight_number,departure_airport,arrival_airport,departure_time,arrival_time,departure_gate,arrival_gate,departure_city,arrival_city
    FLIGHT#0000,UA,1532,SFO,DEN,2025-01-01 05:50:00,2025-01-01 09:23:00,E49,D6,San Francisco,Denver
    FLIGHT#0001,UA,1158,SFO,ORD,2025-01-01 05:57:00,2025-01-01 12:13:00,C38,D30,San Francisco,Chicago
    FLIGHT#0002,F9,1057,IAH,SFO,2025-01-01 05:52:00,2025-01-01 08:14:00,E33,E43,Houston,San Francisco
    FLIGHT#0003,OO,6403,MFR,SFO,2025-01-01 05:57:00,2025-01-01 07:23:00,A6,E50,Medford,San Francisco
    FLIGHT#0004,OO,5628,RNO,SFO,2025-01-01 06:19:00,2025-01-01 07:37:00,A37,B29,Reno,San Francisco
    FLIGHT#0005,CY,922,SFO,LAX,2025-01-01 06:38:00,2025-01-01 07:49:00,D20,E45,San Francisco,Los Angeles
    FLIGHT#0006,AA,338,LAX,SFO,2025-01-01 06:44:00,2025-01-01 08:03:00,E20,A45,Los Angeles,San Francisco
    FLIGHT#0007,UA,1195,MCO,SFO,2025-01-01 12:28:00,2025-01-01 15:06:00,D22,B36,Orlando,San Francisco
    FLIGHT#0008,OO,5632,SBA,SFO,2025-01-01 06:56:00,2025-01-01 08:39:00,E19,A49,Santa Barbara,San Francisco
    FLIGHT#0009,UA,300,CLE,SFO,2025-01-01 07:15:00,2025-01-01 09:22:00,E8,C28,Cleveland,San Francisco
    FLIGHT#0010,UA,706,SEA,SFO,2025-01-01 07:14:00,2025-01-01 09:07:00,A32,B26,Seattle,San Francisco
    FLIGHT#0011,AA,167,MIA,SFO,2025-01-01 07:47:00,2025-01-01 10:51:00,A23,E4,Miami,San Francisco
    FLIGHT#0012,OO,5441,SFO,SBP,2025-01-01 07:08:00,2025-01-01 08:12:00,E21,D24,San Francisco,San Luis Obispo
    FLIGHT#0013,UA,616,SFO,ORD,2025-01-01 07:14:00,2025-01-01 13:24:00,A11,D8,San Francisco,Chicago
    FLIGHT#0014,AA,24,SFO,JFK,2025-01-01 07:14:00,2025-01-01 15:46:00,D4,C15,San Francisco,New York
    FLIGHT#0015,UA,72,HNL,SFO,2025-01-01 07:28:00,2025-01-01 14:22:00,B33,D49,Honolulu,San Francisco
    FLIGHT#0016,AS,244,PDX,SFO,2025-01-01 07:24:00,2025-01-01 09:04:00,E46,B8,Portland,San Francisco
    FLIGHT#0017,OO,6307,MSP,SFO,2025-01-01 07:29:00,2025-01-01 09:32:00,C49,C36,Minneapolis,San Francisco
    FLIGHT#0018,OO,4975,STL,SFO,2025-01-01 07:31:00,2025-01-01 09:58:00,C43,E16,St. Louis,San Francisco
    FLIGHT#0019,AA,23,DFW,SFO,2025-01-01 08:41:00,2025-01-01 10:34:00,E13,E19,Dallas-Fort Worth,San Francisco
    FLIGHT#0020,B6,434,SFO,BOS,2025-01-01 08:00:00,2025-01-01 16:23:00,D16,E46,San Francisco,Boston
    FLIGHT#0021,F9,657,DEN,SFO,2025-01-01 07:58:00,2025-01-01 09:13:00,E41,E28,Denver,San Francisco
    FLIGHT#0022,OO,6464,COS,SFO,2025-01-01 07:56:00,2025-01-01 09:45:00,D49,E17,Colorado Springs,San Francisco
    FLIGHT#0023,UA,1235,IAD,SFO,2025-01-01 08:28:00,2025-01-01 11:15:00,A22,D19,Washington,San Francisco
    FLIGHT#0024,OO,6527,EUG,SFO,2025-01-01 07:54:00,2025-01-01 09:36:00,D9,B26,Eugene,San Francisco
    FLIGHT#0025,AA,242,SFO,ORD,2025-01-01 08:18:00,2025-01-01 14:26:00,E30,C1,San Francisco,Chicago
    FLIGHT#0026,UA,1739,SFO,EWR,2025-01-01 08:22:00,2025-01-01 16:42:00,C13,D45,San Francisco,Newark
    FLIGHT#0027,B6,133,BOS,SFO,2025-01-01 08:34:00,2025-01-01 12:30:00,D49,C16,Boston,San Francisco
    FLIGHT#0028,OO,6336,SFO,RNO,2025-01-01 08:32:00,2025-01-01 09:29:00,B45,A2,San Francisco,Reno
    FLIGHT#0029,UA,567,IAD,SFO,2025-01-01 10:47:00,2025-01-01 13:39:00,C27,B24,Washington,San Francisco
    FLIGHT#0030,OO,5223,SLC,SFO,2025-01-01 08:50:00,2025-01-01 09:55:00,C38,C11,Salt Lake City,San Francisco
    FLIGHT#0031,US,1784,SFO,CLT,2025-01-01 08:47:00,2025-01-01 16:32:00,C42,C31,San Francisco,Charlotte
    FLIGHT#0032,WN,1579,ATL,SFO,2025-01-01 08:48:00,2025-01-01 10:55:00,C47,B5,Atlanta,San Francisco
    FLIGHT#0033,OO,6396,BOI,SFO,2025-01-01 08:56:00,2025-01-01 09:43:00,E20,A6,Boise,San Francisco
    FLIGHT#0034,AA,2293,DFW,SFO,2025-01-01 08:57:00,2025-01-01 11:08:00,D41,C37,Dallas-Fort Worth,San Francisco
    FLIGHT#0035,DL,1106,SFO,MSP,2025-01-01 09:06:00,2025-01-01 14:56:00,E38,B30,San Francisco,Minneapolis
    FLIGHT#0036,DL,1631,SFO,ATL,2025-01-01 09:00:00,2025-01-01 16:26:00,B13,B45,San Francisco,Atlanta
    FLIGHT#0037,OO,5427,SFO,SMF,2025-01-01 09:06:00,2025-01-01 10:00:00,C34,C25,San Francisco,Sacramento
    FLIGHT#0038,CY,352,SFO,BOS,2025-01-01 09:25:00,2025-01-01 17:51:00,A46,E42,San Francisco,Boston
    FLIGHT#0039,UA,1239,LAX,SFO,2025-01-01 09:59:00,2025-01-01 11:19:00,A35,C2,Los Angeles,San Francisco
    FLIGHT#0040,UA,1285,SFO,IAH,2025-01-01 09:41:00,2025-01-01 15:20:00,A39,E10,San Francisco,Houston
    FLIGHT#0041,CY,753,SEA,SFO,2025-01-01 09:58:00,2025-01-01 11:53:00,C40,E35,Seattle,San Francisco
    FLIGHT#0042,CY,956,SFO,SAN,2025-01-01 09:57:00,2025-01-01 11:30:00,B10,E44,San Francisco,San Diego
    FLIGHT#0043,OO,5196,PDX,SFO,2025-01-01 09:53:00,2025-01-01 11:39:00,D13,C34,Portland,San Francisco
    FLIGHT#0044,WN,2346,SFO,LAX,2025-01-01 09:59:00,2025-01-01 11:17:00,C24,E45,San Francisco,Los Angeles
    FLIGHT#0045,OO,6400,EUG,SFO,2025-01-01 10:06:00,2025-01-01 11:27:00,E46,D20,Eugene,San Francisco
    FLIGHT#0046,CY,23,JFK,SFO,2025-01-01 10:21:00,2025-01-01 14:09:00,D2,B21,New York,San Francisco
    FLIGHT#0047,B6,534,SFO,BOS,2025-01-01 10:33:00,2025-01-01 18:55:00,A49,A5,San Francisco,Boston
    FLIGHT#0048,UA,1727,BOS,SFO,2025-01-01 10:34:00,2025-01-01 13:57:00,D43,A31,Boston,San Francisco
    FLIGHT#0049,WN,4391,LAS,SFO,2025-01-01 10:49:00,2025-01-01 12:17:00,A40,C49,Las Vegas,San Francisco
    FLIGHT#0050,OO,5335,CEC,SFO,2025-01-01 10:25:00,2025-01-01 12:04:00,C8,C6,Crescent City,San Francisco
    FLIGHT#0051,DL,1680,ATL,SFO,2025-01-01 10:43:00,2025-01-01 12:45:00,E49,E24,Atlanta,San Francisco
    FLIGHT#0052,OO,6283,SFO,MCI,2025-01-01 10:38:00,2025-01-01 17:01:00,C32,B12,San Francisco,Kansas City
    FLIGHT#0053,OO,5260,SFO,FAT,2025-01-01 10:37:00,2025-01-01 11:39:00,B46,B43,San Francisco,Fresno
    FLIGHT#0054,OO,6249,LAS,SFO,2025-01-01 10:48:00,2025-01-01 12:19:00,D11,A49,Las Vegas,San Francisco
    FLIGHT#0055,AA,23,SFO,DFW,2025-01-01 11:23:00,2025-01-01 17:00:00,B31,A11,San Francisco,Dallas-Fort Worth
    FLIGHT#0056,UA,753,SFO,AUS,2025-01-01 10:59:00,2025-01-01 16:44:00,B18,D6,San Francisco,Austin
    FLIGHT#0057,WN,4855,SFO,MKE,2025-01-01 11:08:00,2025-01-01 17:33:00,D3,D40,San Francisco,Milwaukee
    FLIGHT#0058,DL,1845,SLC,SFO,2025-01-01 11:29:00,2025-01-01 12:06:00,A22,D2,Salt Lake City,San Francisco
    FLIGHT#0059,UA,720,SFO,DEN,2025-01-01 12:46:00,2025-01-01 16:19:00,C41,E39,San Francisco,Denver
    FLIGHT#0060,UA,1257,IAH,SFO,2025-01-01 11:30:00,2025-01-01 13:19:00,A26,D2,Houston,San Francisco
    FLIGHT#0061,WN,2509,SFO,LAX,2025-01-01 11:34:00,2025-01-01 13:03:00,C42,D35,San Francisco,Los Angeles
    FLIGHT#0062,UA,73,EWR,SFO,2025-01-01 12:11:00,2025-01-01 15:24:00,C5,E10,Newark,San Francisco
    FLIGHT#0063,UA,364,PHX,SFO,2025-01-01 11:56:00,2025-01-01 13:11:00,A39,D26,Phoenix,San Francisco
    FLIGHT#0064,AA,221,DFW,SFO,2025-01-01 11:55:00,2025-01-01 13:30:00,A47,B22,Dallas-Fort Worth,San Francisco
    FLIGHT#0065,AA,2293,SFO,DFW,2025-01-01 12:04:00,2025-01-01 17:36:00,C43,E30,San Francisco,Dallas-Fort Worth
    FLIGHT#0066,OO,5199,SFO,SLC,2025-01-01 12:09:00,2025-01-01 14:58:00,A40,E42,San Francisco,Salt Lake City
    FLIGHT#0067,OO,6280,SLC,SFO,2025-01-01 12:13:00,2025-01-01 13:09:00,E16,E36,Salt Lake City,San Francisco
    FLIGHT#0068,OO,6317,RNO,SFO,2025-01-01 12:05:00,2025-01-01 13:09:00,C23,A31,Reno,San Francisco
    FLIGHT#0069,UA,864,SFO,EWR,2025-01-01 12:14:00,2025-01-01 20:38:00,C30,E37,San Francisco,Newark
    FLIGHT#0070,OO,5400,ONT,SFO,2025-01-01 12:25:00,2025-01-01 13:40:00,A48,E19,Ontario,San Francisco
    FLIGHT#0071,UA,236,HNL,SFO,2025-01-01 12:40:00,2025-01-01 19:36:00,A34,C12,Honolulu,San Francisco
    FLIGHT#0072,OO,6343,SNA,SFO,2025-01-01 12:37:00,2025-01-01 13:57:00,A15,D26,Santa Ana,San Francisco
    FLIGHT#0073,UA,1148,SFO,IAD,2025-01-01 13:10:00,2025-01-01 21:02:00,D24,A23,San Francisco,Washington
    FLIGHT#0074,DL,432,JFK,SFO,2025-01-01 13:00:00,2025-01-01 16:28:00,E3,A35,New York,San Francisco
    FLIGHT#0075,B6,1435,SFO,LGB,2025-01-01 13:33:00,2025-01-01 14:47:00,B24,C12,San Francisco,Long Beach
    FLIGHT#0076,OO,6408,SFO,EUG,2025-01-01 13:43:00,2025-01-01 15:10:00,B47,A35,San Francisco,Eugene
    FLIGHT#0077,UA,645,PDX,SFO,2025-01-01 13:27:00,2025-01-01 15:02:00,D7,E4,Portland,San Francisco
    FLIGHT#0078,WN,1812,SFO,SAN,2025-01-01 14:32:00,2025-01-01 15:51:00,B35,D48,San Francisco,San Diego
    FLIGHT#0079,OO,6409,SFO,PDX,2025-01-01 13:42:00,2025-01-01 15:27:00,C10,B17,San Francisco,Portland
    FLIGHT#0080,UA,358,AUS,SFO,2025-01-01 14:31:00,2025-01-01 15:48:00,E33,D21,Austin,San Francisco
    FLIGHT#0081,UA,1728,OGG,SFO,2025-01-01 14:02:00,2025-01-01 20:38:00,A30,C29,Kahului,San Francisco
    FLIGHT#0082,UA,816,SEA,SFO,2025-01-01 13:44:00,2025-01-01 15:38:00,A36,A9,Seattle,San Francisco
    FLIGHT#0083,UA,724,HNL,SFO,2025-01-01 13:59:00,2025-01-01 20:44:00,A14,C9,Honolulu,San Francisco
    FLIGHT#0084,UA,1733,SFO,DEN,2025-01-01 14:38:00,2025-01-01 18:35:00,B27,E32,San Francisco,Denver
    FLIGHT#0085,OO,5543,SFO,BOI,2025-01-01 14:27:00,2025-01-01 17:10:00,E10,B16,San Francisco,Boise
    FLIGHT#0086,UA,1761,IAH,SFO,2025-01-01 14:55:00,2025-01-01 16:45:00,B2,E20,Houston,San Francisco
    FLIGHT#0087,UA,277,DEN,SFO,2025-01-01 14:44:00,2025-01-01 16:04:00,B47,B13,Denver,San Francisco
    FLIGHT#0088,AA,1213,DFW,SFO,2025-01-01 15:14:00,2025-01-01 16:45:00,D11,C31,Dallas-Fort Worth,San Francisco
    FLIGHT#0089,US,407,PHX,SFO,2025-01-01 15:03:00,2025-01-01 16:00:00,C7,D19,Phoenix,San Francisco
    FLIGHT#0090,OO,5367,SFO,RDM,2025-01-01 14:52:00,2025-01-01 16:23:00,A5,E40,San Francisco,Redmond-Bend
    FLIGHT#0091,OO,5454,SMF,SFO,2025-01-01 15:46:00,2025-01-01 16:33:00,A20,A40,Sacramento,San Francisco
    FLIGHT#0092,WN,2687,SFO,LAX,2025-01-01 15:15:00,2025-01-01 16:35:00,D41,B37,San Francisco,Los Angeles
    FLIGHT#0093,CY,932,SFO,LAX,2025-01-01 15:31:00,2025-01-01 16:51:00,A19,E46,San Francisco,Los Angeles
    FLIGHT#0094,WN,3236,SFO,SAN,2025-01-01 15:56:00,2025-01-01 17:23:00,B29,B32,San Francisco,San Diego
    FLIGHT#0095,UA,404,IAH,SFO,2025-01-01 15:56:00,2025-01-01 17:52:00,B15,B42,Houston,San Francisco
    FLIGHT#0096,CY,933,LAX,SFO,2025-01-01 15:42:00,2025-01-01 16:51:00,E16,E7,Los Angeles,San Francisco
    FLIGHT#0097,US,596,SFO,PHX,2025-01-01 15:51:00,2025-01-01 18:52:00,B25,E38,San Francisco,Phoenix
    FLIGHT#0098,AA,379,SFO,DFW,2025-01-01 16:04:00,2025-01-01 21:55:00,A30,D49,San Francisco,Dallas-Fort Worth
    FLIGHT#0099,OO,6280,SFO,SNA,2025-01-01 16:52:00,2025-01-01 18:19:00,B5,C40,San Francisco,Santa Ana
    FLIGHT#0100,UA,735,DEN,SFO,2025-01-01 17:34:00,2025-01-01 19:09:00,C31,B15,Denver,San Francisco
    FLIGHT#0101,OO,5553,PDX,SFO,2025-01-01 16:00:00,2025-01-01 17:36:00,E9,D27,Portland,San Francisco
    FLIGHT#0102,UA,73,SFO,HNL,2025-01-01 16:13:00,2025-01-01 19:52:00,C37,B37,San Francisco,Honolulu
    FLIGHT#0103,UA,587,SEA,SFO,2025-01-01 16:25:00,2025-01-01 18:27:00,B7,B23,Seattle,San Francisco
    FLIGHT#0104,OO,5363,SFO,ONT,2025-01-01 16:09:00,2025-01-01 17:28:00,D21,E29,San Francisco,Ontario
    FLIGHT#0105,OO,6386,SFO,BOI,2025-01-01 16:12:00,2025-01-01 18:58:00,D48,E33,San Francisco,Boise
    FLIGHT#0106,CY,27,JFK,SFO,2025-01-01 16:28:00,2025-01-01 20:19:00,C6,E14,New York,San Francisco
    FLIGHT#0107,OO,5190,SFO,ASE,2025-01-01 16:24:00,2025-01-01 19:42:00,C50,B44,San Francisco,Aspen
    FLIGHT#0108,CY,746,SFO,SEA,2025-01-01 16:40:00,2025-01-01 18:32:00,D35,C24,San Francisco,Seattle
    FLIGHT#0109,UA,1640,SFO,ORD,2025-01-01 17:01:00,2025-01-01 23:02:00,E27,C24,San Francisco,Chicago
    FLIGHT#0110,OO,6221,MCI,SFO,2025-01-01 17:28:00,2025-01-01 19:08:00,E2,C36,Kansas City,San Francisco
    FLIGHT#0111,UA,486,SFO,LAS,2025-01-01 16:47:00,2025-01-01 18:16:00,C42,B47,San Francisco,Las Vegas
    FLIGHT#0112,CY,2,DCA,SFO,2025-01-01 17:01:00,2025-01-01 20:07:00,E43,A33,Washington,San Francisco
    FLIGHT#0113,B6,1436,LGB,SFO,2025-01-01 16:59:00,2025-01-01 18:35:00,B12,B22,Long Beach,San Francisco
    FLIGHT#0114,WN,694,PHX,SFO,2025-01-01 17:11:00,2025-01-01 18:05:00,B44,B18,Phoenix,San Francisco
    FLIGHT#0115,OO,5635,MMH,SFO,2025-01-01 17:00:00,2025-01-01 18:01:00,A25,D7,Mammoth Lakes,San Francisco
    FLIGHT#0116,AS,341,PSP,SFO,2025-01-01 18:25:00,2025-01-01 19:46:00,A11,E18,Palm Springs,San Francisco
    FLIGHT#0117,OO,6364,PSP,SFO,2025-01-01 18:01:00,2025-01-01 19:31:00,A14,B47,Palm Springs,San Francisco
    FLIGHT#0118,OO,5418,SBP,SFO,2025-01-01 17:17:00,2025-01-01 18:15:00,B24,D17,San Luis Obispo,San Francisco
    FLIGHT#0119,AA,197,SFO,ORD,2025-01-01 17:21:00,2025-01-01 23:33:00,D25,E49,San Francisco,Chicago
    FLIGHT#0120,CY,720,SFO,DAL,2025-01-01 18:25:00,2025-01-01 23:43:00,B24,A2,San Francisco,Dallas
    FLIGHT#0121,OO,6268,FAT,SFO,2025-01-01 17:33:00,2025-01-01 18:39:00,E35,D25,Fresno,San Francisco
    FLIGHT#0122,OO,5615,SFO,EUG,2025-01-01 17:45:00,2025-01-01 19:18:00,B11,A34,San Francisco,Eugene
    FLIGHT#0123,CY,960,SFO,SAN,2025-01-01 17:55:00,2025-01-01 19:23:00,D23,E44,San Francisco,San Diego
    FLIGHT#0124,AA,1393,DFW,SFO,2025-01-01 17:51:00,2025-01-01 19:25:00,E11,A41,Dallas-Fort Worth,San Francisco
    FLIGHT#0125,OO,6352,BOI,SFO,2025-01-01 17:58:00,2025-01-01 18:46:00,B31,D23,Boise,San Francisco
    FLIGHT#0126,DL,1151,SFO,HNL,2025-01-01 17:53:00,2025-01-01 21:34:00,E29,B45,San Francisco,Honolulu
    FLIGHT#0127,OO,5227,SFO,SAN,2025-01-01 19:07:00,2025-01-01 20:31:00,A35,B38,San Francisco,San Diego
    FLIGHT#0128,CY,941,LAX,SFO,2025-01-01 18:19:00,2025-01-01 19:34:00,C33,B44,Los Angeles,San Francisco
    FLIGHT#0129,UA,1044,EWR,SFO,2025-01-01 19:19:00,2025-01-01 22:53:00,D50,D26,Newark,San Francisco
    FLIGHT#0130,CY,211,ORD,SFO,2025-01-01 18:41:00,2025-01-01 21:14:00,D13,E45,Chicago,San Francisco
    FLIGHT#0131,UA,685,ORD,SFO,2025-01-01 18:51:00,2025-01-01 21:04:00,D26,D45,Chicago,San Francisco
    FLIGHT#0132,UA,370,SFO,SEA,2025-01-01 18:49:00,2025-01-01 20:41:00,B6,E20,San Francisco,Seattle
    FLIGHT#0133,UA,1433,IAH,SFO,2025-01-01 19:45:00,2025-01-01 21:39:00,C42,C48,Houston,San Francisco
    FLIGHT#0134,UA,1172,DEN,SFO,2025-01-01 20:19:00,2025-01-01 22:37:00,E31,D43,Denver,San Francisco
    FLIGHT#0135,CY,593,PSP,SFO,2025-01-01 19:09:00,2025-01-01 20:26:00,C23,C43,Palm Springs,San Francisco
    FLIGHT#0136,UA,1564,SFO,ORD,2025-01-01 19:14:00,2025-01-02 01:14:00,E3,C48,San Francisco,Chicago
    FLIGHT#0137,UA,741,ORD,SFO,2025-01-01 19:18:00,2025-01-01 21:58:00,A25,B38,Chicago,San Francisco
    FLIGHT#0138,WN,600,SFO,SNA,2025-01-01 19:36:00,2025-01-01 20:53:00,D21,D11,San Francisco,Santa Ana
    FLIGHT#0139,F9,664,SFO,DEN,2025-01-01 19:31:00,2025-01-01 23:13:00,E11,E12,San Francisco,Denver
    FLIGHT#0140,OO,4995,LAS,SFO,2025-01-01 19:18:00,2025-01-01 20:58:00,B42,B49,Las Vegas,San Francisco
    FLIGHT#0141,CY,717,DAL,SFO,2025-01-01 19:31:00,2025-01-01 21:02:00,A42,D32,Dallas,San Francisco
    FLIGHT#0142,UA,1243,SFO,DEN,2025-01-01 19:38:00,2025-01-01 23:15:00,B34,A3,San Francisco,Denver
    FLIGHT#0143,UA,560,IAD,SFO,2025-01-01 19:41:00,2025-01-01 22:29:00,D9,D33,Washington,San Francisco
    FLIGHT#0144,WN,2791,LAX,SFO,2025-01-01 19:45:00,2025-01-01 20:57:00,C49,C22,Los Angeles,San Francisco
    FLIGHT#0145,WN,2079,SAN,SFO,2025-01-01 21:03:00,2025-01-01 22:33:00,A25,E24,San Diego,San Francisco
    FLIGHT#0146,OO,6356,SFO,SLC,2025-01-01 19:57:00,2025-01-01 22:49:00,A28,C45,San Francisco,Salt Lake City
    FLIGHT#0147,OO,6290,PSP,SFO,2025-01-01 19:48:00,2025-01-01 21:12:00,A33,E27,Palm Springs,San Francisco
    FLIGHT#0148,OO,5363,ONT,SFO,2025-01-01 20:27:00,2025-01-01 21:54:00,A14,E17,Ontario,San Francisco
    FLIGHT#0149,OO,5206,SFO,PHX,2025-01-01 20:12:00,2025-01-01 23:05:00,D22,E31,San Francisco,Phoenix
    FLIGHT#0150,B6,1136,LGB,SFO,2025-01-01 20:41:00,2025-01-01 21:56:00,B7,E45,Long Beach,San Francisco
    FLIGHT#0151,US,736,PHX,SFO,2025-01-01 21:12:00,2025-01-01 22:11:00,B22,E33,Phoenix,San Francisco
    FLIGHT#0152,AA,1611,DFW,SFO,2025-01-01 21:42:00,2025-01-01 23:37:00,A13,B44,Dallas-Fort Worth,San Francisco
    FLIGHT#0153,UA,1241,SFO,EWR,2025-01-01 21:44:00,2025-01-02 05:55:00,D3,A17,San Francisco,Newark
    FLIGHT#0154,UA,1726,OGG,SFO,2025-01-01 22:19:00,2025-01-02 04:56:00,C35,B23,Kahului,San Francisco
    FLIGHT#0155,US,898,SFO,CLT,2025-01-01 22:29:00,2025-01-02 06:18:00,D7,D15,San Francisco,Charlotte
    FLIGHT#0156,UA,1669,SFO,PHL,2025-01-01 22:26:00,2025-01-02 06:30:00,B13,A12,San Francisco,Philadelphia
    FLIGHT#0157,UA,362,SFO,BWI,2025-01-01 22:31:00,2025-01-02 06:36:00,E32,A36,San Francisco,Baltimore
    FLIGHT#0158,OO,6220,SFO,RNO,2025-01-01 22:25:00,2025-01-01 23:23:00,D18,A31,San Francisco,Reno
    FLIGHT#0159,OO,6376,SFO,MRY,2025-01-01 22:35:00,2025-01-01 23:19:00,C24,E48,San Francisco,Monterey
    FLIGHT#0160,UA,522,SFO,PDX,2025-01-01 22:36:00,2025-01-02 00:31:00,B17,A40,San Francisco,Portland
    FLIGHT#0161,UA,1728,SFO,BOS,2025-01-01 22:46:00,2025-01-02 07:20:00,C40,E43,San Francisco,Boston
    FLIGHT#0162,UA,724,SFO,LAX,2025-01-01 22:45:00,2025-01-02 00:29:00,E43,B23,San Francisco,Los Angeles
    FLIGHT#0163,UA,1681,SFO,CLE,2025-01-01 23:03:00,2025-01-02 06:45:00,D26,E19,San Francisco,Cleveland
    FLIGHT#0164,UA,1580,OGG,SFO,2025-01-01 23:24:00,2025-01-02 06:07:00,E38,A35,Kahului,San Francisco
    FLIGHT#0165,DL,806,SFO,MSP,2025-01-02 00:22:00,2025-01-02 05:57:00,B27,A3,San Francisco,Minneapolis
    FLIGHT#0166,OO,5467,ONT,SFO,2025-01-02 05:02:00,2025-01-02 06:18:00,E8,C32,Ontario,San Francisco
    FLIGHT#0167,WN,1989,SFO,LAS,2025-01-02 05:35:00,2025-01-02 06:46:00,A21,D15,San Francisco,Las Vegas
    FLIGHT#0168,UA,1619,BOS,SFO,2025-01-02 05:56:00,2025-01-02 09:56:00,C46,E11,Boston,San Francisco
    FLIGHT#0169,UA,1076,SFO,ORD,2025-01-02 05:58:00,2025-01-02 12:00:00,E27,A31,San Francisco,Chicago
    FLIGHT#0170,F9,1056,SFO,IAH,2025-01-02 05:59:00,2025-01-02 12:09:00,A29,B13,San Francisco,Houston
    FLIGHT#0171,WN,2242,LAX,SFO,2025-01-02 06:22:00,2025-01-02 07:36:00,C12,D43,Los Angeles,San Francisco
    FLIGHT#0172,B6,735,SFO,LGB,2025-01-02 06:01:00,2025-01-02 07:20:00,C2,C37,San Francisco,Long Beach
    FLIGHT#0173,WN,3859,SFO,MDW,2025-01-02 06:27:00,2025-01-02 12:26:00,A28,E38,San Francisco,Chicago
    FLIGHT#0174,UA,1285,SFO,ORD,2025-01-02 06:43:00,2025-01-02 12:47:00,B43,A35,San Francisco,Chicago
    FLIGHT#0175,WN,1726,SFO,PHX,2025-01-02 06:32:00,2025-01-02 09:20:00,C16,B2,San Francisco,Phoenix
    FLIGHT#0176,OO,5186,SFO,SAN,2025-01-02 06:25:00,2025-01-02 07:59:00,C47,C1,San Francisco,San Diego
    FLIGHT#0177,UA,566,PIT,SFO,2025-01-02 07:15:00,2025-01-02 09:46:00,C39,E39,Pittsburgh,San Francisco
    FLIGHT#0178,UA,1195,MCO,SFO,2025-01-02 07:18:00,2025-01-02 10:05:00,A47,C43,Orlando,San Francisco
    FLIGHT#0179,CY,925,LAX,SFO,2025-01-02 06:57:00,2025-01-02 08:07:00,E29,C19,Los Angeles,San Francisco
    FLIGHT#0180,UA,761,ORD,SFO,2025-01-02 07:07:00,2025-01-02 09:34:00,B22,A3,Chicago,San Francisco
    FLIGHT#0181,UA,758,SFO,JFK,2025-01-02 07:07:00,2025-01-02 15:53:00,B15,B39,San Francisco,New York
    FLIGHT#0182,CY,67,IAD,SFO,2025-01-02 07:07:00,2025-01-02 10:00:00,D24,E33,Washington,San Francisco
    FLIGHT#0183,UA,706,SEA,SFO,2025-01-02 07:05:00,2025-01-02 08:59:00,D9,C28,Seattle,San Francisco
    FLIGHT#0184,OO,5441,SFO,SBP,2025-01-02 07:06:00,2025-01-02 08:11:00,B3,B29,San Francisco,San Luis Obispo
    FLIGHT#0185,CY,202,SFO,ORD,2025-01-02 07:18:00,2025-01-02 13:23:00,C16,D10,San Francisco,Chicago
    FLIGHT#0186,CY,710,SFO,DAL,2025-01-02 07:16:00,2025-01-02 12:43:00,D1,E13,San Francisco,Dallas
    FLIGHT#0187,AA,24,SFO,JFK,2025-01-02 07:06:00,2025-01-02 15:29:00,C38,D2,San Francisco,New York
    FLIGHT#0188,UA,72,HNL,SFO,2025-01-02 07:28:00,2025-01-02 14:20:00,C8,E18,Honolulu,San Francisco
    FLIGHT#0189,UA,1278,ATL,SFO,2025-01-02 07:30:00,2025-01-02 09:41:00,C16,B21,Atlanta,San Francisco
    FLIGHT#0190,UA,498,SFO,SAN,2025-01-02 07:20:00,2025-01-02 08:38:00,B42,E44,San Francisco,San Diego
    FLIGHT#0191,CY,183,EWR,SFO,2025-01-02 07:26:00,2025-01-02 10:51:00,B33,A12,Newark,San Francisco
    FLIGHT#0192,AA,76,SFO,LAX,2025-01-02 07:22:00,2025-01-02 08:44:00,E28,B18,San Francisco,Los Angeles
    FLIGHT#0193,WN,2325,DEN,SFO,2025-01-02 07:40:00,2025-01-02 09:03:00,A5,A17,Denver,San Francisco
    FLIGHT#0194,WN,1545,LAX,SFO,2025-01-02 07:48:00,2025-01-02 09:02:00,D42,A25,Los Angeles,San Francisco
    FLIGHT#0195,OO,5196,SFO,PDX,2025-01-02 07:46:00,2025-01-02 09:32:00,B12,B11,San Francisco,Portland
    FLIGHT#0196,UA,1053,DEN,SFO,2025-01-02 08:06:00,2025-01-02 09:41:00,C37,E7,Denver,San Francisco
    FLIGHT#0197,AA,23,DFW,SFO,2025-01-02 07:53:00,2025-01-02 09:26:00,D24,C34,Dallas-Fort Worth,San Francisco
    FLIGHT#0198,UA,322,SNA,SFO,2025-01-02 07:53:00,2025-01-02 09:17:00,E22,D32,Santa Ana,San Francisco
    FLIGHT#0199,UA,500,IND,SFO,2025-01-02 08:02:00,2025-01-02 09:46:00,D47,B25,Indianapolis,San Francisco
    FLIGHT#0200,UA,662,SAN,SFO,2025-01-02 08:51:00,2025-01-02 10:38:00,C36,B37,San Diego,San Francisco
    FLIGHT#0201,UA,834,LAS,SFO,2025-01-02 07:51:00,2025-01-02 09:17:00,B24,E14,Las Vegas,San Francisco
    FLIGHT#0202,CY,1930,SFO,LAX,2025-01-02 07:58:00,2025-01-02 09:29:00,D1,E49,San Francisco,Los Angeles
    FLIGHT#0203,UA,1454,ORD,SFO,2025-01-02 08:09:00,2025-01-02 10:54:00,C45,D18,Chicago,San Francisco
    FLIGHT#0204,AA,1368,SFO,DFW,2025-01-02 08:11:00,2025-01-02 13:35:00,A24,D28,San Francisco,Dallas-Fort Worth
    FLIGHT#0205,UA,460,LAX,SFO,2025-01-02 08:22:00,2025-01-02 09:53:00,E4,D14,Los Angeles,San Francisco
    FLIGHT#0206,UA,1547,SFO,BOS,2025-01-02 08:30:00,2025-01-02 16:52:00,B24,D37,San Francisco,Boston
    FLIGHT#0207,AA,242,SFO,ORD,2025-01-02 08:28:00,2025-01-02 14:41:00,D10,B31,San Francisco,Chicago
    FLIGHT#0208,OO,5538,MFR,SFO,2025-01-02 08:15:00,2025-01-02 09:44:00,D3,B43,Medford,San Francisco
    FLIGHT#0209,UA,1739,SFO,EWR,2025-01-02 08:56:00,2025-01-02 17:03:00,B18,A15,San Francisco,Newark
    FLIGHT#0210,DL,745,DTW,SFO,2025-01-02 08:36:00,2025-01-02 10:43:00,B2,D29,Detroit,San Francisco
    FLIGHT#0211,OO,5445,SFO,SBP,2025-01-02 10:35:00,2025-01-02 11:50:00,D39,A1,San Francisco,San Luis Obispo
    FLIGHT#0212,OO,5223,SLC,SFO,2025-01-02 08:52:00,2025-01-02 09:50:00,C17,C19,Salt Lake City,San Francisco
    FLIGHT#0213,UA,1615,SFO,IAD,2025-01-02 08:44:00,2025-01-02 16:41:00,A19,C46,San Francisco,Washington
    FLIGHT#0214,AA,1435,ORD,SFO,2025-01-02 08:43:00,2025-01-02 11:08:00,B49,B11,Chicago,San Francisco
    FLIGHT#0215,HA,11,SFO,HNL,2025-01-02 09:28:00,2025-01-02 13:38:00,E28,B21,San Francisco,Honolulu
    FLIGHT#0216,OO,6373,SFO,DFW,2025-01-02 08:51:00,2025-01-02 14:40:00,B42,D13,San Francisco,Dallas-Fort Worth
    FLIGHT#0217,UA,479,SFO,LAX,2025-01-02 11:15:00,2025-01-02 12:47:00,E32,B7,San Francisco,Los Angeles
    FLIGHT#0218,UA,361,SFO,LIH,2025-01-02 09:33:00,2025-01-02 13:10:00,A45,C26,San Francisco,Lihue
    FLIGHT#0219,WN,2074,SFO,SNA,2025-01-02 09:08:00,2025-01-02 10:18:00,A6,A49,San Francisco,Santa Ana
    FLIGHT#0220,CY,84,SFO,IAD,2025-01-02 09:20:00,2025-01-02 17:25:00,A37,B4,San Francisco,Washington
    FLIGHT#0221,WN,2969,SAN,SFO,2025-01-02 09:35:00,2025-01-02 10:59:00,B50,A43,San Diego,San Francisco
    FLIGHT#0222,UA,1249,SFO,MCO,2025-01-02 10:10:00,2025-01-02 18:15:00,D13,E20,San Francisco,Orlando
    FLIGHT#0223,WN,1820,SFO,LAS,2025-01-02 09:52:00,2025-01-02 11:19:00,B19,D16,San Francisco,Las Vegas
    FLIGHT#0224,WN,2414,SFO,PHX,2025-01-02 09:57:00,2025-01-02 12:52:00,E1,C5,San Francisco,Phoenix
    FLIGHT#0225,UA,698,SEA,SFO,2025-01-02 09:54:00,2025-01-02 11:59:00,E37,D34,Seattle,San Francisco
    FLIGHT#0226,AS,303,SFO,SEA,2025-01-02 10:06:00,2025-01-02 12:11:00,D36,C9,San Francisco,Seattle
    FLIGHT#0227,WN,3323,SFO,DEN,2025-01-02 10:40:00,2025-01-02 13:59:00,A4,E35,San Francisco,Denver
    FLIGHT#0228,OO,6286,SBA,SFO,2025-01-02 10:23:00,2025-01-02 11:47:00,B46,A8,Santa Barbara,San Francisco
    FLIGHT#0229,OO,5603,PHX,SFO,2025-01-02 10:29:00,2025-01-02 11:41:00,A2,C22,Phoenix,San Francisco
    FLIGHT#0230,CY,218,SFO,AUS,2025-01-02 10:28:00,2025-01-02 15:56:00,E49,C21,San Francisco,Austin
    FLIGHT#0231,OO,5335,CEC,SFO,2025-01-02 10:32:00,2025-01-02 12:09:00,D29,D17,Crescent City,San Francisco
    FLIGHT#0232,OO,5646,SFO,SBA,2025-01-02 10:33:00,2025-01-02 11:54:00,A50,E40,San Francisco,Santa Barbara
    FLIGHT#0233,OO,5635,SFO,SNA,2025-01-02 11:22:00,2025-01-02 12:55:00,C17,D47,San Francisco,Santa Ana
    FLIGHT#0234,OO,6380,SFO,BOI,2025-01-02 10:41:00,2025-01-02 13:18:00,B18,C15,San Francisco,Boise
    FLIGHT#0235,UA,662,SFO,MSP,2025-01-02 10:52:00,2025-01-02 16:39:00,B6,E11,San Francisco,Minneapolis
    FLIGHT#0236,OO,6270,SFO,RNO,2025-01-02 10:43:00,2025-01-02 11:52:00,C15,E10,San Francisco,Reno
    FLIGHT#0237,OO,4975,SFO,TUS,2025-01-02 12:23:00,2025-01-02 15:18:00,D5,C12,San Francisco,Tucson
    FLIGHT#0238,UA,322,SFO,SEA,2025-01-02 10:49:00,2025-01-02 12:54:00,E29,D3,San Francisco,Seattle
    FLIGHT#0239,WN,1009,LAX,SFO,2025-01-02 11:33:00,2025-01-02 12:45:00,E12,C30,Los Angeles,San Francisco
    FLIGHT#0240,OO,4966,SFO,SUN,2025-01-02 11:11:00,2025-01-02 14:15:00,D39,D21,San Francisco,Hailey
    FLIGHT#0241,UA,753,SFO,AUS,2025-01-02 11:40:00,2025-01-02 17:33:00,B30,D47,San Francisco,Austin
    FLIGHT#0242,UA,242,SFO,SAN,2025-01-02 12:00:00,2025-01-02 13:24:00,B27,E27,San Francisco,San Diego
    FLIGHT#0243,UA,390,SEA,SFO,2025-01-02 11:10:00,2025-01-02 13:08:00,A17,A23,Seattle,San Francisco
    FLIGHT#0244,OO,6336,RNO,SFO,2025-01-02 11:17:00,2025-01-02 12:17:00,A45,E39,Reno,San Francisco
    FLIGHT#0245,OO,5250,MRY,SFO,2025-01-02 11:12:00,2025-01-02 12:28:00,B33,E11,Monterey,San Francisco
    FLIGHT#0246,UA,317,SAN,SFO,2025-01-02 12:10:00,2025-01-02 13:40:00,A14,A42,San Diego,San Francisco
    FLIGHT#0247,OO,5652,SFO,PSP,2025-01-02 12:14:00,2025-01-02 13:50:00,E17,B17,San Francisco,Palm Springs
    FLIGHT#0248,UA,1195,SFO,ORD,2025-01-02 11:56:00,2025-01-02 18:12:00,B39,B19,San Francisco,Chicago
    FLIGHT#0249,CY,714,SFO,DAL,2025-01-02 11:40:00,2025-01-02 17:22:00,C50,A19,San Francisco,Dallas
    FLIGHT#0250,WN,2779,LAX,SFO,2025-01-02 11:58:00,2025-01-02 13:09:00,B19,C27,Los Angeles,San Francisco
    FLIGHT#0251,UA,1722,SFO,IAH,2025-01-02 11:58:00,2025-01-02 18:29:00,E12,D6,San Francisco,Houston
    FLIGHT#0252,UA,766,JFK,SFO,2025-01-02 11:55:00,2025-01-02 15:21:00,A16,C18,New York,San Francisco
    FLIGHT#0253,UA,1437,ORD,SFO,2025-01-02 12:36:00,2025-01-02 15:09:00,A33,E19,Chicago,San Francisco
    FLIGHT#0254,UA,1294,LAS,SFO,2025-01-02 12:20:00,2025-01-02 13:45:00,E7,A10,Las Vegas,San Francisco
    FLIGHT#0255,UA,1266,SEA,SFO,2025-01-02 12:13:00,2025-01-02 14:11:00,B32,C18,Seattle,San Francisco
    FLIGHT#0256,UA,1668,SFO,EWR,2025-01-02 12:24:00,2025-01-02 20:34:00,D37,A30,San Francisco,Newark
    FLIGHT#0257,OO,6304,BUR,SFO,2025-01-02 12:31:00,2025-01-02 14:01:00,C7,C4,Burbank,San Francisco
    FLIGHT#0258,WN,4391,SFO,STL,2025-01-02 12:55:00,2025-01-02 18:36:00,A12,D39,San Francisco,St. Louis
    FLIGHT#0259,UA,236,HNL,SFO,2025-01-02 13:19:00,2025-01-02 20:12:00,B25,D26,Honolulu,San Francisco
    FLIGHT#0260,UA,1705,SFO,IAH,2025-01-02 12:51:00,2025-01-02 18:50:00,E11,E32,San Francisco,Houston
    FLIGHT#0261,OO,6490,EUG,SFO,2025-01-02 13:00:00,2025-01-02 14:21:00,D34,D29,Eugene,San Francisco
    FLIGHT#0262,UA,820,SFO,ORD,2025-01-02 13:02:00,2025-01-02 19:11:00,B45,E24,San Francisco,Chicago
    FLIGHT#0263,AS,381,SFO,PDX,2025-01-02 12:52:00,2025-01-02 14:34:00,E11,B3,San Francisco,Portland
    FLIGHT#0264,AS,305,SFO,SEA,2025-01-02 12:59:00,2025-01-02 15:10:00,C34,C41,San Francisco,Seattle
    FLIGHT#0265,OO,6273,SFO,SLC,2025-01-02 12:57:00,2025-01-02 15:50:00,C3,D36,San Francisco,Salt Lake City
    FLIGHT#0266,DL,2254,SFO,DTW,2025-01-02 13:05:00,2025-01-02 20:29:00,E10,D30,San Francisco,Detroit
    FLIGHT#0267,B6,1435,SFO,LGB,2025-01-02 13:34:00,2025-01-02 15:02:00,B31,D48,San Francisco,Long Beach
    FLIGHT#0268,F9,661,DEN,SFO,2025-01-02 13:11:00,2025-01-02 14:35:00,C3,E38,Denver,San Francisco
    FLIGHT#0269,UA,1092,EWR,SFO,2025-01-02 13:44:00,2025-01-02 17:05:00,D13,A41,Newark,San Francisco
    FLIGHT#0270,US,1812,SFO,CLT,2025-01-02 13:32:00,2025-01-02 21:36:00,A50,A5,San Francisco,Charlotte
    FLIGHT#0271,WN,2598,LAX,SFO,2025-01-02 13:48:00,2025-01-02 14:54:00,E23,C38,Los Angeles,San Francisco
    FLIGHT#0272,UA,216,SFO,SNA,2025-01-02 15:23:00,2025-01-02 16:41:00,C23,E6,San Francisco,Santa Ana
    FLIGHT#0273,UA,1060,SFO,DCA,2025-01-02 15:19:00,2025-01-02 23:18:00,D14,B18,San Francisco,Washington
    FLIGHT#0274,OO,6326,BOI,SFO,2025-01-02 13:51:00,2025-01-02 14:24:00,D49,A43,Boise,San Francisco
    FLIGHT#0275,UA,724,HNL,SFO,2025-01-02 14:43:00,2025-01-02 21:33:00,B26,A50,Honolulu,San Francisco
    FLIGHT#0276,OO,5463,SFO,SMF,2025-01-02 13:50:00,2025-01-02 14:32:00,A13,D23,San Francisco,Sacramento
    FLIGHT#0277,UA,698,SFO,MCO,2025-01-02 14:24:00,2025-01-02 22:33:00,D49,B2,San Francisco,Orlando
    FLIGHT#0278,CY,1178,SFO,EWR,2025-01-02 13:58:00,2025-01-02 22:06:00,C27,D9,San Francisco,Newark
    FLIGHT#0279,OO,6425,TUS,SFO,2025-01-02 14:50:00,2025-01-02 15:54:00,E29,D17,Tucson,San Francisco
    FLIGHT#0280,OO,5615,MFR,SFO,2025-01-02 13:55:00,2025-01-02 15:15:00,B44,E27,Medford,San Francisco
    FLIGHT#0281,WN,3450,SFO,MDW,2025-01-02 14:50:00,2025-01-02 20:46:00,D39,B44,San Francisco,Chicago
    FLIGHT#0282,UA,1733,SFO,DEN,2025-01-02 15:11:00,2025-01-02 18:47:00,D8,D2,San Francisco,Denver
    FLIGHT#0283,UA,1263,KOA,SFO,2025-01-02 14:59:00,2025-01-02 21:49:00,C39,E3,Kona,San Francisco
    FLIGHT#0284,UA,1568,SFO,RDU,2025-01-02 14:55:00,2025-01-02 23:03:00,A30,A26,San Francisco,Raleigh-durham
    FLIGHT#0285,UA,1159,SFO,BOS,2025-01-02 14:57:00,2025-01-02 23:23:00,C19,A30,San Francisco,Boston
    FLIGHT#0286,OO,5652,PSP,SFO,2025-01-02 14:52:00,2025-01-02 16:46:00,D37,A5,Palm Springs,San Francisco
    FLIGHT#0287,US,749,CLT,SFO,2025-01-02 15:28:00,2025-01-02 17:47:00,D17,D38,Charlotte,San Francisco
    FLIGHT#0288,UA,1491,SFO,DEN,2025-01-02 15:09:00,2025-01-02 18:45:00,E31,E36,San Francisco,Denver
    FLIGHT#0289,WN,2687,SFO,LAX,2025-01-02 15:27:00,2025-01-02 16:31:00,E42,B13,San Francisco,Los Angeles
    FLIGHT#0290,DL,2040,SFO,JFK,2025-01-02 15:09:00,2025-01-02 23:20:00,E2,D33,San Francisco,New York
    FLIGHT#0291,OO,5549,SFO,AUS,2025-01-02 15:24:00,2025-01-02 21:11:00,B42,C1,San Francisco,Austin
    FLIGHT#0292,AS,308,SEA,SFO,2025-01-02 15:22:00,2025-01-02 17:18:00,C39,A46,Seattle,San Francisco
    FLIGHT#0293,F9,662,SFO,DEN,2025-01-02 15:16:00,2025-01-02 18:50:00,C5,A8,San Francisco,Denver
    FLIGHT#0294,UA,735,DEN,SFO,2025-01-02 16:00:00,2025-01-02 17:19:00,A32,C24,Denver,San Francisco
    FLIGHT#0295,UA,404,IAH,SFO,2025-01-02 17:26:00,2025-01-02 19:32:00,C14,A7,Houston,San Francisco
    FLIGHT#0296,CY,210,SFO,ORD,2025-01-02 15:42:00,2025-01-02 21:44:00,A31,B46,San Francisco,Chicago
    FLIGHT#0297,AS,315,SFO,SEA,2025-01-02 19:47:00,2025-01-02 22:16:00,A8,B49,San Francisco,Seattle
    FLIGHT#0298,WN,1901,SAN,SFO,2025-01-02 15:48:00,2025-01-02 17:09:00,A23,B38,San Diego,San Francisco
    FLIGHT#0299,OO,5580,SFO,SNA,2025-01-02 16:35:00,2025-01-02 18:03:00,D40,E43,San Francisco,Santa Ana
    FLIGHT#0300,AA,2265,DFW,SFO,2025-01-02 16:07:00,2025-01-02 17:41:00,A4,A23,Dallas-Fort Worth,San Francisco
    FLIGHT#0301,OO,5363,SFO,ONT,2025-01-02 16:15:00,2025-01-02 17:32:00,A10,A26,San Francisco,Ontario
    FLIGHT#0302,OO,5609,SFO,PDX,2025-01-02 17:01:00,2025-01-02 18:42:00,E49,D4,San Francisco,Portland
    FLIGHT#0303,OO,5645,MFR,SFO,2025-01-02 16:15:00,2025-01-02 17:35:00,A25,E49,Medford,San Francisco
    FLIGHT#0304,OO,4976,SFO,STL,2025-01-02 16:37:00,2025-01-02 22:27:00,C35,A2,San Francisco,St. Louis
    FLIGHT#0305,OO,6217,BUR,SFO,2025-01-02 16:44:00,2025-01-02 17:55:00,D50,A14,Burbank,San Francisco
    FLIGHT#0306,WN,1276,SFO,LAX,2025-01-02 16:25:00,2025-01-02 17:32:00,B8,D22,San Francisco,Los Angeles
    FLIGHT#0307,OO,6238,ACV,SFO,2025-01-02 16:25:00,2025-01-02 17:36:00,E24,A39,Arcata CA,San Francisco
    FLIGHT#0308,OO,5190,SFO,ASE,2025-01-02 17:08:00,2025-01-02 20:17:00,C9,E6,San Francisco,Aspen
    FLIGHT#0309,OO,4627,SFO,SLC,2025-01-02 16:43:00,2025-01-02 19:41:00,C32,C4,San Francisco,Salt Lake City
    FLIGHT#0310,OO,6476,SFO,MFR,2025-01-02 16:38:00,2025-01-02 18:16:00,B26,D33,San Francisco,Medford
    FLIGHT#0311,UA,486,SFO,LAS,2025-01-02 16:52:00,2025-01-02 18:24:00,D25,E8,San Francisco,Las Vegas
    FLIGHT#0312,DL,214,SFO,DTW,2025-01-02 19:09:00,2025-01-03 02:20:00,C6,E35,San Francisco,Detroit
    FLIGHT#0313,CY,592,SFO,PSP,2025-01-02 16:54:00,2025-01-02 18:14:00,B40,B9,San Francisco,Palm Springs
    FLIGHT#0314,UA,529,SNA,SFO,2025-01-02 17:01:00,2025-01-02 18:15:00,D28,B30,Santa Ana,San Francisco
    FLIGHT#0315,UA,372,MSP,SFO,2025-01-02 17:39:00,2025-01-02 19:19:00,E28,C18,Minneapolis,San Francisco
    FLIGHT#0316,AA,1213,SFO,DFW,2025-01-02 18:20:00,2025-01-03 00:19:00,E39,A42,San Francisco,Dallas-Fort Worth
    FLIGHT#0317,AS,341,PSP,SFO,2025-01-02 17:15:00,2025-01-02 18:37:00,D40,D15,Palm Springs,San Francisco
    FLIGHT#0318,OO,5418,SBP,SFO,2025-01-02 18:11:00,2025-01-02 19:09:00,C31,D39,San Luis Obispo,San Francisco
    FLIGHT#0319,CY,193,EWR,SFO,2025-01-02 17:29:00,2025-01-02 20:59:00,E20,E40,Newark,San Francisco
    FLIGHT#0320,UA,1723,SFO,KOA,2025-01-02 17:26:00,2025-01-02 21:02:00,E18,D41,San Francisco,Kona
    FLIGHT#0321,UA,1762,SFO,IAH,2025-01-02 17:37:00,2025-01-02 23:11:00,C40,C37,San Francisco,Houston
    FLIGHT#0322,CY,720,SFO,DAL,2025-01-02 17:23:00,2025-01-02 22:47:00,D13,D23,San Francisco,Dallas
    FLIGHT#0323,CY,963,SAN,SFO,2025-01-02 17:36:00,2025-01-02 19:05:00,B1,E32,San Diego,San Francisco
    FLIGHT#0324,OO,5255,SFO,EUG,2025-01-02 17:27:00,2025-01-02 19:02:00,C7,B2,San Francisco,Eugene
    FLIGHT#0325,CY,960,SFO,SAN,2025-01-02 17:32:00,2025-01-02 18:50:00,C3,C4,San Francisco,San Diego
    FLIGHT#0326,UA,1419,MSY,SFO,2025-01-02 17:46:00,2025-01-02 20:07:00,C26,E49,New Orleans,San Francisco
    FLIGHT#0327,WN,1585,SFO,LAX,2025-01-02 17:46:00,2025-01-02 19:31:00,A12,A12,San Francisco,Los Angeles
    FLIGHT#0328,DL,1505,MSP,SFO,2025-01-02 17:47:00,2025-01-02 19:48:00,A33,B37,Minneapolis,San Francisco
    FLIGHT#0329,US,686,PHX,SFO,2025-01-02 17:59:00,2025-01-02 19:05:00,C28,C11,Phoenix,San Francisco
    FLIGHT#0330,AS,302,SEA,SFO,2025-01-02 18:00:00,2025-01-02 20:04:00,B28,E17,Seattle,San Francisco
    FLIGHT#0331,UA,1552,RDU,SFO,2025-01-02 18:08:00,2025-01-02 20:51:00,B15,D48,Raleigh-durham,San Francisco
    FLIGHT#0332,UA,697,LAS,SFO,2025-01-02 17:55:00,2025-01-02 19:14:00,E37,B31,Las Vegas,San Francisco
    FLIGHT#0333,AA,219,LAX,SFO,2025-01-02 17:54:00,2025-01-02 19:05:00,C27,E34,Los Angeles,San Francisco
    FLIGHT#0334,OO,5425,ONT,SFO,2025-01-02 18:04:00,2025-01-02 19:23:00,C46,A14,Ontario,San Francisco
    FLIGHT#0335,WN,1861,SFO,PHX,2025-01-02 20:49:00,2025-01-02 23:31:00,C31,B42,San Francisco,Phoenix
    FLIGHT#0336,OO,5631,SFO,BUR,2025-01-02 18:10:00,2025-01-02 19:29:00,D26,E29,San Francisco,Burbank
    FLIGHT#0337,UA,720,SFO,AUS,2025-01-02 18:13:00,2025-01-02 23:41:00,E10,D1,San Francisco,Austin
    FLIGHT#0338,UA,1581,SFO,OGG,2025-01-02 18:15:00,2025-01-02 22:06:00,B40,E18,San Francisco,Kahului
    FLIGHT#0339,OO,5227,SFO,SAN,2025-01-02 18:26:00,2025-01-02 19:59:00,E33,E50,San Francisco,San Diego
    FLIGHT#0340,CY,941,LAX,SFO,2025-01-02 18:24:00,2025-01-02 19:39:00,D4,A22,Los Angeles,San Francisco
    FLIGHT#0341,AA,1459,ORD,SFO,2025-01-02 18:21:00,2025-01-02 21:11:00,D42,B25,Chicago,San Francisco
    FLIGHT#0342,OO,5442,SFO,RDD,2025-01-02 18:19:00,2025-01-02 19:35:00,E21,B9,San Francisco,Redding
    FLIGHT#0343,AA,69,MIA,SFO,2025-01-02 18:31:00,2025-01-02 21:33:00,B11,B15,Miami,San Francisco
    FLIGHT#0344,OO,6220,DFW,SFO,2025-01-02 19:01:00,2025-01-02 20:40:00,D35,E4,Dallas-Fort Worth,San Francisco
    FLIGHT#0345,UA,1670,SFO,HNL,2025-01-02 18:42:00,2025-01-02 22:52:00,A15,C18,San Francisco,Honolulu
    FLIGHT#0346,DL,435,JFK,SFO,2025-01-02 18:57:00,2025-01-02 22:25:00,D35,C33,New York,San Francisco
    FLIGHT#0347,UA,508,SEA,SFO,2025-01-02 19:01:00,2025-01-02 21:05:00,C16,B8,Seattle,San Francisco
    FLIGHT#0348,UA,1523,BOS,SFO,2025-01-02 21:19:00,2025-01-03 01:19:00,E7,B32,Boston,San Francisco
    FLIGHT#0349,CY,593,PSP,SFO,2025-01-02 19:03:00,2025-01-02 20:21:00,C13,A47,Palm Springs,San Francisco
    FLIGHT#0350,UA,741,ORD,SFO,2025-01-02 19:44:00,2025-01-02 22:14:00,A16,C32,Chicago,San Francisco
    FLIGHT#0351,WN,3414,SFO,SAN,2025-01-02 19:43:00,2025-01-02 21:10:00,E3,D46,San Francisco,San Diego
    FLIGHT#0352,UA,404,SFO,PDX,2025-01-02 19:42:00,2025-01-02 21:24:00,B48,A30,San Francisco,Portland
    FLIGHT#0353,UA,637,SFO,SNA,2025-01-02 19:32:00,2025-01-02 20:49:00,D40,A23,San Francisco,Santa Ana
    FLIGHT#0354,OO,5573,SAT,SFO,2025-01-02 21:13:00,2025-01-02 22:57:00,D34,E33,San Antonio,San Francisco
    FLIGHT#0355,AA,219,SFO,LAX,2025-01-02 20:03:00,2025-01-02 22:00:00,E27,D38,San Francisco,Los Angeles
    FLIGHT#0356,OO,5600,BUR,SFO,2025-01-02 19:55:00,2025-01-02 21:21:00,A7,A27,Burbank,San Francisco
    FLIGHT#0357,CY,947,LAX,SFO,2025-01-02 20:38:00,2025-01-02 22:06:00,D28,C15,Los Angeles,San Francisco
    FLIGHT#0358,WN,138,SFO,LAS,2025-01-02 20:26:00,2025-01-02 21:49:00,B35,E31,San Francisco,Las Vegas
    FLIGHT#0359,OO,5302,SFO,PSC,2025-01-02 20:29:00,2025-01-02 22:28:00,C9,A15,San Francisco,Pasco
    FLIGHT#0360,CY,748,SFO,SEA,2025-01-02 20:46:00,2025-01-02 23:17:00,D7,E25,San Francisco,Seattle
    FLIGHT#0361,UA,236,SFO,EWR,2025-01-02 20:41:00,2025-01-03 05:04:00,D12,B47,San Francisco,Newark
    FLIGHT#0362,OO,6503,SFO,EUG,2025-01-02 20:54:00,2025-01-02 22:27:00,A50,E49,San Francisco,Eugene
    FLIGHT#0363,WN,1174,LAS,SFO,2025-01-02 20:58:00,2025-01-02 22:19:00,C42,D33,Las Vegas,San Francisco
    FLIGHT#0364,AS,744,SFO,SLC,2025-01-02 20:52:00,2025-01-02 23:33:00,B11,A39,San Francisco,Salt Lake City
    FLIGHT#0365,WN,4992,SFO,PHX,2025-01-02 21:49:00,2025-01-03 00:32:00,D19,E15,San Francisco,Phoenix
    FLIGHT#0366,UA,469,EWR,SFO,2025-01-02 23:07:00,2025-01-03 02:27:00,E3,D19,Newark,San Francisco
    FLIGHT#0367,UA,1163,SFO,EWR,2025-01-02 21:44:00,2025-01-03 05:45:00,D19,C17,San Francisco,Newark
    FLIGHT#0368,DL,2337,SFO,ATL,2025-01-02 21:44:00,2025-01-03 05:23:00,B4,A39,San Francisco,Atlanta
    FLIGHT#0369,OO,6432,SFO,EUG,2025-01-02 22:24:00,2025-01-02 23:57:00,E11,A4,San Francisco,Eugene
    FLIGHT#0370,US,898,SFO,CLT,2025-01-02 22:24:00,2025-01-03 06:16:00,A45,A24,San Francisco,Charlotte
    FLIGHT#0371,UA,292,SFO,MCO,2025-01-02 22:30:00,2025-01-03 06:37:00,C7,C5,San Francisco,Orlando
    FLIGHT#0372,OO,5600,SFO,MFR,2025-01-02 22:36:00,2025-01-03 00:01:00,E42,E38,San Francisco,Medford
    FLIGHT#0373,UA,263,LAX,SFO,2025-01-02 22:48:00,2025-01-03 00:04:00,B22,E27,Los Angeles,San Francisco
    FLIGHT#0374,OO,5414,SFO,RDM,2025-01-02 22:32:00,2025-01-03 00:12:00,A46,C18,San Francisco,Redmond-Bend
    FLIGHT#0375,UA,1241,SFO,EWR,2025-01-02 23:22:00,2025-01-03 07:44:00,A28,E27,San Francisco,Newark
    FLIGHT#0376,UA,522,SFO,PDX,2025-01-02 22:55:00,2025-01-03 00:42:00,A10,E39,San Francisco,Portland
    FLIGHT#0377,UA,724,SFO,ORD,2025-01-02 23:05:00,2025-01-03 05:20:00,B40,D23,San Francisco,Chicago
    FLIGHT#0378,UA,156,SFO,MSY,2025-01-02 23:22:00,2025-01-03 05:24:00,C40,A9,San Francisco,New Orleans
    FLIGHT#0379,CY,358,SFO,BOS,2025-01-02 22:52:00,2025-01-03 07:31:00,B23,A44,San Francisco,Boston
    FLIGHT#0380,DL,1370,SFO,JFK,2025-01-02 23:04:00,2025-01-03 07:36:00,E10,A49,San Francisco,New York
    FLIGHT#0381,UA,1729,SFO,IAD,2025-01-02 23:10:00,2025-01-03 07:35:00,D32,E42,San Francisco,Washington
    FLIGHT#0382,CY,34,SFO,JFK,2025-01-02 23:15:00,2025-01-03 07:54:00,D28,E25,San Francisco,New York
    FLIGHT#0383,DL,1880,SFO,ATL,2025-01-02 00:53:00,2025-01-02 08:27:00,E2,A29,San Francisco,Atlanta
    FLIGHT#0384,UA,1523,SFO,EWR,2025-01-02 23:39:00,2025-01-03 07:43:00,B9,D15,San Francisco,Newark
    FLIGHT#0385,US,426,PHX,SFO,2025-01-02 00:18:00,2025-01-02 01:16:00,D47,C42,Phoenix,San Francisco
  4. flights.csv ファイルから flights テーブルにデータをインポートします。

    cbt import flights flights.csv
  5. Bigtable Studio で次のクエリを実行して、テーブルにデータが入力されていることを確認します。

    • SELECT * FROM airports LIMIT 10;
    • SELECT * FROM flights LIMIT 10;

Bigtable Studio でコンテキスト セットを作成する

このセクションでは、flights-assistant という名前のコンテキスト セットを作成します。このコンテキスト セットには、アップロードされたコンテキスト セット ファイルが含まれていません。

  1. Google Cloud コンソールで、[Bigtable] ページに移動します。

    Bigtable に移動

  2. リストからインスタンスを選択します。

  3. ナビゲーション メニューで [Bigtable Studio] をクリックします。

  4. [エクスプローラ] ペインで、[コンテキスト セット] の横にある [アクションを表示()] をクリックします。

  5. [コンテキスト セットを作成] をクリックします。

  6. [コンテキスト セット名] に「flights-assistant」と入力します。

  7. [作成] をクリックします。

Studio で QueryData をテストする

このセクションでは、自然言語の質問をして flights-assistant コンテキスト セットを使用し、SQL クエリを生成します。コンテキスト セットにアップロードされたコンテキスト セット ファイルがなく、Bigtable スキーマは個々の列修飾子ではなく列ファミリー名(info)のみを公開するため、QueryData は列修飾子を推測し、最適でないクエリを生成します。

  1. [エクスプローラ] ペインで、コンテキスト セットの横にある [アクションを表示()] をクリックします。
  2. [テスト コンテキスト セット] をクリックします。
  3. クエリエディタで、[Generate SQL using QueryData with: flights-assistant] をクリックします。
  4. 次の自然言語の質問を入力して SQL クエリを生成し、[生成] をクリックします。

    Find flights from SFO to JFK.
    

    SQL クエリを確認します。コンテキストが設定されていない場合、QueryData は flights テーブルの info 列ファミリー(MAP<BYTES, BYTES>)を認識しますが、列修飾子 departure_airport と arrival_airport は認識しません。そのため、origin や destination などの修飾子名を推測します。

      SELECT
        _key,
        info
      FROM
        flights
      WHERE
        CAST(info['origin'] AS STRING) = 'SFO'
        AND CAST(info['destination'] AS STRING) = 'JFK';
    
  5. [Generate SQL using QueryData with: flights-assistant] ウィンドウで、[Edit] をクリックします。

  6. 次の自然言語の質問を入力して SQL クエリを生成し、[更新] をクリックします。

    Tell me flights that can help me beat nighttime traffic if traveling from New York
    

    データベースは nighttime traffic という用語を理解できず、次のクエリに示すように、flights テーブルに存在しない列修飾子を推測します。

    -- Assuming 'nighttime traffic' refers to flights departing during the night,
    -- defined here as between 8:00 PM (20:00) and 5:00 AM (05:00).
    SELECT
      CAST(_key AS STRING) AS flight_id,
      CAST(info['flight_number'] AS STRING) AS flight_number,
      CAST(info['origin'] AS STRING) AS origin,
      CAST(info['destination'] AS STRING) AS destination,
      CAST(info['departure_time'] AS STRING) AS departure_time
    FROM
      flights
    WHERE
      CAST(info['origin'] AS STRING) = 'New York'
      AND (
        EXTRACT(HOUR FROM TIMESTAMP(CAST(info['departure_time'] AS STRING))) >= 20
        OR EXTRACT(HOUR FROM TIMESTAMP(CAST(info['departure_time'] AS STRING))) < 5
      );
    
  7. [Generate SQL using QueryData with: flights-assistant] ウィンドウで、[Edit] をクリックします。

  8. 次の自然言語の質問を入力して SQL クエリを生成し、[更新] をクリックします。

    Show me flights to Raleigh-Durham
    

    値検索コンテキストがない場合、QueryData は列修飾子を推測し、Raleigh-Durham でフィルタします。flights テーブルには、info['arrival_city'] の下に Raleigh-durham として都市が保存されているため、クエリは行を返しません。

    SELECT
      _key,
      info
    FROM
      flights
    WHERE
      CAST(info['destination_city'] AS STRING) = 'Raleigh-Durham';
    

コンテキスト セットのコンテキストを生成する

このセクションでは、環境を準備し、コンテキスト セットのクエリ機能を改善するコンテキスト ファイルを作成します。

環境の設定

コンテキストの生成を開始する前に、環境を準備する必要があります。

環境を設定するには、次の操作を行います。

  1. Antigravity CLI をインストールします。詳細については、Antigravity CLI を使ってみるをご覧ください。
  2. Google Cloud CLI をインストールします。
  3. アプリケーションのデフォルト認証情報(ADC)を設定します。ターミナルで次のコマンドを実行して、認証を行い、プロジェクトを選択します。

    gcloud auth application-default login
  4. コンテキスト エンジニアリング エージェントの前提条件である Python のパッケージおよびプロジェクト マネージャー uv をインストールします。システムに Python がまだインストールされていない場合は、uv でインストールできます。

  5. コンテキスト エンジニアリング エージェントをインストールする:

    agy plugin install https://github.com/GoogleCloudPlatform/db-context-enrichment/tree/main/plugin
  6. ターミナルで Antigravity CLI を起動します。

    agy
  7. MCP ツールボックスを使用して、コンテキスト生成用のデータベース接続を設定します。接続は tools.yaml 構成ファイルで定義されます。

    現在のディレクトリに tools.yaml 構成ファイルを作成するには、次のようなプロンプトを入力します。

    Help me set up a database connection.
    

    スキルの指示に沿って操作します。tools.yaml ファイルの詳細については、MCP ツールボックスのドキュメントをご覧ください。

  8. tools.yaml ファイルの作成後に構成を再読み込みするには、Antigravity CLI で次のコマンドを実行し、手順に沿ってツールボックス MCP サーバーを再読み込みします。

    /mcp
    1. [db-context-engineering_toolbox] を選択します。

    2. [Restart] を選択します。

  9. MCP ツールボックスとコンテキスト エンジニアリング エージェント プラグインが接続され、使用可能な状態であることを確認します。

    /mcp

テンプレート コンテキストを生成する

このセクションでは、前のセクションで QueryData が flights 列修飾子または nighttime traffic という用語を認識できなかった問題に対処するため、コンテキスト セット ファイルでテンプレートを定義します。このテンプレートは、自然言語の質問を info 列ファミリー修飾子にマッピングし、nighttime traffic を午後 5 時から午後 7 時の間に発生するトラフィックとして定義します。

テンプレート コンテキストを生成する手順は次のとおりです。

  1. Antigravity CLI に次のプロンプトを入力します。

    Generate templates for the following two questions and SQL queries:
    
    1. Question: "Show me flights from SFO to JFK"
    SQL:
    SELECT
      CAST(_key AS STRING) AS flight_id,
      CAST(info['airline'] AS STRING) AS airline,
      CAST(info['flight_number'] AS STRING) AS flight_number,
      CAST(info['departure_airport'] AS STRING) AS departure_airport,
      CAST(info['arrival_airport'] AS STRING) AS arrival_airport,
      CAST(info['departure_time'] AS STRING) AS departure_time,
      CAST(info['arrival_time'] AS STRING) AS arrival_time,
      CAST(info['departure_gate'] AS STRING) AS departure_gate,
      CAST(info['arrival_gate'] AS STRING) AS arrival_gate,
      CAST(info['departure_city'] AS STRING) AS departure_city,
      CAST(info['arrival_city'] AS STRING) AS arrival_city
    FROM
      flights
    WHERE
      CAST(info['departure_airport'] AS STRING) = 'SFO'
      AND CAST(info['arrival_airport'] AS STRING) = 'JFK'
    ORDER BY
      departure_time;
    
    2. Question: "Tell me flights that can help me beat nighttime traffic if traveling from New York"
    SQL:
    SELECT
      CAST(info['airline'] AS STRING) AS airline,
      CAST(info['flight_number'] AS STRING) AS flight_number,
      CAST(info['departure_airport'] AS STRING) AS departure_airport,
      CAST(info['departure_time'] AS STRING) AS departure_time
    FROM
      flights
    WHERE
      CAST(info['departure_city'] AS STRING) = 'New York'
      AND (
        EXTRACT(HOUR FROM TIMESTAMP(CAST(info['departure_time'] AS STRING))) < 17
        OR EXTRACT(HOUR FROM TIMESTAMP(CAST(info['departure_time'] AS STRING))) >= 19
      )
    ORDER BY
      departure_time;
    
  2. エージェントは、入力を特定の形式に変換し、幅広いユーザー クエリにわたってコンテキスト セットのパフォーマンスを向上させます。詳細については、コンテキスト セットの概要をご覧ください。

  3. 生成されたクエリ テンプレートを確認します。クエリ テンプレートは、新しいエージェント コンテキスト ファイルとして保存することも、既存のエージェント コンテキスト ファイルに追加することもできます。

  4. エージェントにテンプレートを保存するよう指示します。

    Save it to context_set.json.
    

    エージェントは、同じディレクトリに次の内容のファイルを作成します。

    {
      "templates": [
        {
          "nl_query": "Show me flights from SFO to JFK",
          "sql": "SELECT CAST(_key AS STRING) AS flight_id, CAST(info['airline'] AS STRING) AS airline, CAST(info['flight_number'] AS STRING) AS flight_number, CAST(info['departure_airport'] AS STRING) AS departure_airport, CAST(info['arrival_airport'] AS STRING) AS arrival_airport, CAST(info['departure_time'] AS STRING) AS departure_time, CAST(info['arrival_time'] AS STRING) AS arrival_time, CAST(info['departure_gate'] AS STRING) AS departure_gate, CAST(info['arrival_gate'] AS STRING) AS arrival_gate, CAST(info['departure_city'] AS STRING) AS departure_city, CAST(info['arrival_city'] AS STRING) AS arrival_city FROM flights WHERE CAST(info['departure_airport'] AS STRING) = 'SFO' AND CAST(info['arrival_airport'] AS STRING) = 'JFK' ORDER BY departure_time",
          "intent": "Find flights from SFO to JFK.",
          "manifest": "Find flights from a given departure airport code to a given arrival airport code.",
          "parameterized": {
            "parameterized_sql": "SELECT CAST(_key AS STRING) AS flight_id, CAST(info['airline'] AS STRING) AS airline, CAST(info['flight_number'] AS STRING) AS flight_number, CAST(info['departure_airport'] AS STRING) AS departure_airport, CAST(info['arrival_airport'] AS STRING) AS arrival_airport, CAST(info['departure_time'] AS STRING) AS departure_time, CAST(info['arrival_time'] AS STRING) AS arrival_time, CAST(info['departure_gate'] AS STRING) AS departure_gate, CAST(info['arrival_gate'] AS STRING) AS arrival_gate, CAST(info['departure_city'] AS STRING) AS departure_city, CAST(info['arrival_city'] AS STRING) AS arrival_city FROM flights WHERE CAST(info['departure_airport'] AS STRING) = ? AND CAST(info['arrival_airport'] AS STRING) = ? ORDER BY departure_time",
            "parameterized_intent": "Find flights from ? to ?."
          }
        },
        {
          "nl_query": "Tell me flights that can help me beat nighttime traffic if traveling from New York",
          "sql": "SELECT CAST(info['airline'] AS STRING) AS airline, CAST(info['flight_number'] AS STRING) AS flight_number, CAST(info['departure_airport'] AS STRING) AS departure_airport, CAST(info['departure_time'] AS STRING) AS departure_time FROM flights WHERE CAST(info['departure_city'] AS STRING) = 'New York' AND (EXTRACT(HOUR FROM TIMESTAMP(CAST(info['departure_time'] AS STRING))) < 17 OR EXTRACT(HOUR FROM TIMESTAMP(CAST(info['departure_time'] AS STRING))) >= 19) ORDER BY departure_time",
          "intent": "Tell me flights that can help me beat nighttime traffic if traveling from New York",
          "manifest": "Tell me flights that can help me beat nighttime traffic if traveling from a given city",
          "parameterized": {
            "parameterized_sql": "SELECT CAST(info['airline'] AS STRING) AS airline, CAST(info['flight_number'] AS STRING) AS flight_number, CAST(info['departure_airport'] AS STRING) AS departure_airport, CAST(info['departure_time'] AS STRING) AS departure_time FROM flights WHERE CAST(info['departure_city'] AS STRING) = ? AND (EXTRACT(HOUR FROM TIMESTAMP(CAST(info['departure_time'] AS STRING))) < 17 OR EXTRACT(HOUR FROM TIMESTAMP(CAST(info['departure_time'] AS STRING))) >= 19) ORDER BY departure_time",
            "parameterized_intent": "Tell me flights that can help me beat nighttime traffic if traveling from ?"
          }
        }
      ]
    }
    

値検索コンテキストを生成する

このセクションでは、値検索コンテキストを生成します。これにより、コンテキスト セット ロジックは、大文字と小文字を区別しない完全一致の文字列照合を使用して、値フレーズを Bigtable 列に格納されている特定の値にマッピングできます。たとえば、ユーザーが「Raleigh-Durham」へのフライトをリクエストした場合、値検索はこれを保存されているデータベース値 "Raleigh-durham"(空港コード RDU)にマッピングします。

値検索コンテキストを生成する手順は次のとおりです。

  1. エージェント ハーネスに次のプロンプトを入力します。

    Generate a case-insensitive value search on table "airports" for column "info['city']" with concept "Airport City" using match function "EXACT_MATCH_STRINGS".
  2. 生成された値検索の定義を確認します。値検索定義は、新しいコンテキスト セット ファイルとして保存することも、既存のコンテキスト セット ファイルに追加することもできます。

  3. エージェントに Append the context to context_set.json とプロンプトを入力します。これにより、前のセクションで作成したコンテキスト ファイルに値検索定義が追加されます。

  4. コンテキスト セット ファイルが生成されたデータベース インスタンスとデータベース名を入力します。

    既存のコンテキスト ファイルが値検索定義で更新され、次の内容になります。

    {
      "templates": [
        {
          "nl_query": "Show me flights from SFO to JFK",
          "sql": "SELECT CAST(_key AS STRING) AS flight_id, CAST(info['airline'] AS STRING) AS airline, CAST(info['flight_number'] AS STRING) AS flight_number, CAST(info['departure_airport'] AS STRING) AS departure_airport, CAST(info['arrival_airport'] AS STRING) AS arrival_airport, CAST(info['departure_time'] AS STRING) AS departure_time, CAST(info['arrival_time'] AS STRING) AS arrival_time, CAST(info['departure_gate'] AS STRING) AS departure_gate, CAST(info['arrival_gate'] AS STRING) AS arrival_gate, CAST(info['departure_city'] AS STRING) AS departure_city, CAST(info['arrival_city'] AS STRING) AS arrival_city FROM flights WHERE CAST(info['departure_airport'] AS STRING) = 'SFO' AND CAST(info['arrival_airport'] AS STRING) = 'JFK' ORDER BY departure_time",
          "intent": "Find flights from SFO to JFK.",
          "manifest": "Find flights from a given departure airport code to a given arrival airport code.",
          "parameterized": {
            "parameterized_sql": "SELECT CAST(_key AS STRING) AS flight_id, CAST(info['airline'] AS STRING) AS airline, CAST(info['flight_number'] AS STRING) AS flight_number, CAST(info['departure_airport'] AS STRING) AS departure_airport, CAST(info['arrival_airport'] AS STRING) AS arrival_airport, CAST(info['departure_time'] AS STRING) AS departure_time, CAST(info['arrival_time'] AS STRING) AS arrival_time, CAST(info['departure_gate'] AS STRING) AS departure_gate, CAST(info['arrival_gate'] AS STRING) AS arrival_gate, CAST(info['departure_city'] AS STRING) AS departure_city, CAST(info['arrival_city'] AS STRING) AS arrival_city FROM flights WHERE CAST(info['departure_airport'] AS STRING) = ? AND CAST(info['arrival_airport'] AS STRING) = ? ORDER BY departure_time",
            "parameterized_intent": "Find flights from ? to ?."
          }
        },
        {
          "nl_query": "Tell me flights that can help me beat nighttime traffic if traveling from New York",
          "sql": "SELECT CAST(info['airline'] AS STRING) AS airline, CAST(info['flight_number'] AS STRING) AS flight_number, CAST(info['departure_airport'] AS STRING) AS departure_airport, CAST(info['departure_time'] AS STRING) AS departure_time FROM flights WHERE CAST(info['departure_city'] AS STRING) = 'New York' AND (EXTRACT(HOUR FROM TIMESTAMP(CAST(info['departure_time'] AS STRING))) < 17 OR EXTRACT(HOUR FROM TIMESTAMP(CAST(info['departure_time'] AS STRING))) >= 19) ORDER BY departure_time",
          "intent": "Tell me flights that can help me beat nighttime traffic if traveling from New York",
          "manifest": "Tell me flights that can help me beat nighttime traffic if traveling from a given city",
          "parameterized": {
            "parameterized_sql": "SELECT CAST(info['airline'] AS STRING) AS airline, CAST(info['flight_number'] AS STRING) AS flight_number, CAST(info['departure_airport'] AS STRING) AS departure_airport, CAST(info['departure_time'] AS STRING) AS departure_time FROM flights WHERE CAST(info['departure_city'] AS STRING) = ? AND (EXTRACT(HOUR FROM TIMESTAMP(CAST(info['departure_time'] AS STRING))) < 17 OR EXTRACT(HOUR FROM TIMESTAMP(CAST(info['departure_time'] AS STRING))) >= 19) ORDER BY departure_time",
            "parameterized_intent": "Tell me flights that can help me beat nighttime traffic if traveling from ?"
          }
        }
      ],
      "facets": [],
      "value_searches": [
        {
          "query": "SELECT CAST(T.info['city'] AS STRING) AS value, 'info:city' AS `columns`, 'Airport City' AS concept_type, 0.0 AS distance, CONCAT('iata=', CAST(T.info['iata'] AS STRING), ', name=', CAST(T.info['name'] AS STRING)) AS context FROM `airports` AS T WHERE LOWER(CAST(T.info['city'] AS STRING)) = LOWER(CAST($value AS STRING))",
          "concept_type": "Airport City",
          "description": "Exact case-insensitive match on airport city name in the airports table."
        }
      ]
    }
    

コンテキスト セット ファイルを QueryData にアップロードする

このセクションでは、コンテキスト セット ファイルを QueryData にアップロードして、データベースに対する QueryData の SQL 生成機能を改善します。

コンテキストをアップロードする手順は次のとおりです。

  1. Google Cloud コンソールで、[Bigtable] ページに移動します。

    Bigtable に移動

  2. リストからインスタンスを選択します。

  3. ナビゲーション メニューで [Bigtable Studio] をクリックします。

  4. [エクスプローラ ペイン] の [コンテキスト セット] で、flights-assistant コンテキスト セットの横にある [アクションを表示]()アイコンをクリックします。

  5. [コンテキスト セットを編集] をクリックします。

  6. [コンテキスト ファイルのアップロード] セクションで [参照] をクリックし、前に生成したコンテキスト セット ファイルを選択します。

  7. [保存] をクリックします。

QueryData を使用して SQL クエリを生成する

このセクションでは、アップロードしたコンテキスト セット ファイルを使用して、自然言語で質問します。これにより、QueryData が nighttime traffic などの用語やその他の関連フレーズの定義を正しく理解して適用していることを確認できます。

SQL クエリを生成する手順は次のとおりです。

  1. [エクスプローラ] ペインで、コンテキスト セットの横にある [アクションを表示()] をクリックします。
  2. [テスト コンテキスト セット] をクリックします。
  3. クエリエディタで、[Generate SQL using QueryData with: flights-assistant] をクリックします。
  4. SQL クエリを生成するには、次の自然言語の質問を入力し、[生成] をクリックします。

    Tell me flights that can help me beat nighttime traffic if traveling from New York
    

    生成された SQL クエリは次のようになります。

    SELECT
      CAST(info['airline'] AS STRING) AS airline,
      CAST(info['flight_number'] AS STRING) AS flight_number,
      CAST(info['departure_airport'] AS STRING) AS departure_airport,
      CAST(info['departure_time'] AS STRING) AS departure_time
    FROM
      flights
    WHERE
      CAST(info['departure_city'] AS STRING) = 'New York'
      AND (
        EXTRACT(HOUR FROM TIMESTAMP(CAST(info['departure_time'] AS STRING))) < 17
        OR EXTRACT(HOUR FROM TIMESTAMP(CAST(info['departure_time'] AS STRING))) >= 19
      )
    ORDER BY
      departure_time;
    

    これは、QueryData のコンテキストに追加した質問と同じです。QueryData が nighttime traffic という用語を正確に解釈できるようになったことを確認します。

    コンテキストは特定の質問から取得されますが、QueryData はそれを使用して、幅広い類似の質問に対する SQL 生成を強化します。

  5. [Generate SQL using QueryData with: flights-assistant] ウィンドウで、[Edit] をクリックします。

  6. 次の類似した質問を入力して SQL クエリを生成し、[更新] をクリックします。

    What are the flights that can help me avoid evening traffic if departing from Boston
    

    この質問では、nighttime traffic という用語が類似の用語 evening traffic に置き換えられているため、QueryData は同じ解釈を適用して、この質問に対して一貫した回答を提供します。

    生成された SQL クエリは次のようになります。

    SELECT
      CAST(info['airline'] AS STRING) AS airline,
      CAST(info['flight_number'] AS STRING) AS flight_number,
      CAST(info['departure_airport'] AS STRING) AS departure_airport,
      CAST(info['departure_time'] AS STRING) AS departure_time
    FROM
      flights
    WHERE
      CAST(info['departure_city'] AS STRING) = 'Boston'
      AND (
        EXTRACT(HOUR FROM TIMESTAMP(CAST(info['departure_time'] AS STRING))) < 17
        OR EXTRACT(HOUR FROM TIMESTAMP(CAST(info['departure_time'] AS STRING))) >= 19
      )
    ORDER BY
      departure_time;
    
  7. [Generate SQL using QueryData with: flights-assistant] ウィンドウで、[Edit] をクリックします。

  8. 次の質問を入力して SQL クエリを生成し、[更新] をクリックします。

    Show me flights to Raleigh-Durham
    

    生成された SQL クエリは次のようになります。

    SELECT
      CAST(_key AS STRING) AS flight_id,
      CAST(info['airline'] AS STRING) AS airline,
      CAST(info['flight_number'] AS STRING) AS flight_number,
      CAST(info['departure_airport'] AS STRING) AS departure_airport,
      CAST(info['arrival_airport'] AS STRING) AS arrival_airport,
      CAST(info['departure_time'] AS STRING) AS departure_time,
      CAST(info['arrival_time'] AS STRING) AS arrival_time,
      CAST(info['departure_gate'] AS STRING) AS departure_gate,
      CAST(info['arrival_gate'] AS STRING) AS arrival_gate,
      CAST(info['departure_city'] AS STRING) AS departure_city,
      CAST(info['arrival_city'] AS STRING) AS arrival_city
    FROM
      flights
    WHERE
      CAST(info['arrival_city'] AS STRING) = 'Raleigh-durham'
    ORDER BY
      departure_time;
    

    QueryData が Raleigh-Durham を保存された値 "Raleigh-durham"(RDU)に正確にマッピングできるようになったことを確認します。

QueryData をアプリケーションと統合する

このセクションでは、フライト検索アプリケーション用のデータ エージェントを作成します。このデータ エージェントは、先ほど作成した flights テーブルと airports テーブルへの会話型インターフェースを提供します。また、Agent Development Kit(ADK)、Gemini Data Analytics QueryData MCP ツール、回答の品質を向上させるコンテキスト セットを使用して、このデータ エージェントを作成し、アプリケーションに統合する方法についても説明します。

  1. MCP ツールボックス バージョン 1.14.0 以降をダウンロードします。MCP ツールボックスは、アプリケーションが接続するためのツールとしてデータ エージェントを公開します。MCP ツールボックスは、コンテキストを生成する、先ほどインストールしたコンテキスト エンジニアリング エージェントとは異なります。

  2. アプリケーションのデフォルト認証情報(ADC)を設定します。

    gcloud auth application-default login
  3. 先ほど作成したコンテキスト セットの ID を確認します。コンテキスト セット ID を確認する方法については、コンテキスト セット ID を確認するをご覧ください。

  4. tools.yaml 構成に次の行を追加して、MCP ツールボックスを使用してデータ エージェントに接続します。詳細については、Gemini データ分析ソースと Gemini データ分析 QueryData ツールをご覧ください。

    ---
    kind: source
    name: gda-api-source
    type: cloud-gemini-data-analytics
    projectId: "PROJECT_ID"
    ---
    kind: tool
    name: cloud_gda_query_tool
    type: cloud-gemini-data-analytics-query
    source: gda-api-source
    description: Use this tool to send natural language queries to the Gemini Data Analytics API and receive SQL, natural language answers, and explanations.
    location: "REGION_ID"
    context:
      datasourceReferences:
        bigtableReference:
          databaseReference:
            projectId: "PROJECT_ID"
            instanceId: "INSTANCE_ID"
          agentContextReference:
            contextSetId: "CONTEXT_SET_ID"
    generationOptions:
      generateQueryResult: true
      generateNaturalLanguageAnswer: true
      generateExplanation: true
      generateDisambiguationQuestion: true
    

    次のように置き換えます。

    • PROJECT_ID: 実際の Google Cloud プロジェクト ID。
    • REGION_ID: Bigtable クラスタのリージョン(例: us-central1)。
    • INSTANCE_ID: Bigtable インスタンスの ID。
    • CONTEXT_SET_ID: コンテキスト セット ID。コンテキスト セット ID を確認する方法については、コンテキスト セット ID を確認するをご覧ください。
  5. tools.yaml ファイルを使用して MCP ツールボックス サーバーを実行します。

    ./toolbox --config PATH_TO_TOOLS_YAML

    PATH_TO_TOOLS_YAML は、先ほど作成した tools.yaml ファイルのパスに置き換えます。

  6. MCP ツールボックスの Python SDK を使用して Gemini Data Analytics QueryData ツールを呼び出す ADK アプリケーションを作成します。MCP ツールボックスの Python SDK の使用方法については、ツールボックスのクイックスタートをご覧ください。Python ADK については、ADK のクイックスタートをご覧ください。

    1. アプリケーションを保存するディレクトリ(flight-assistant-app など)を作成します。
    2. ディレクトリを flight-assistant-app ディレクトリに変更します。

      mkdir flight-assistant-app
      cd flight-assistant-app
    3. flight-assistant-app ディレクトリで次のコマンドを実行して、仮想環境を作成し、必要なコンポーネントをインストールします。

      uv init
      uv add google-adk toolbox-core google-genai
    4. ADK エージェントを設定する。

      1. ADK エージェントを作成します。

        uv run adk create my_agent
      2. gemini-2.5-flash モデル以降を選択します。

      3. [Google AI] を選択し、Gemini API キーを入力します。API キーを確認する方法の詳細については、Gemini API キーを使用するをご覧ください。(無料トライアルが不要な場合は、[Vertex AI] を選択して、課金が有効になっている Google Cloud プロジェクトを指定することもできます)。

    5. agent.py ファイルの内容を、次の Flight Data Assistant サンプル アプリケーション コードに置き換えます。

      from typing import cast
      
      from google.adk.agents.llm_agent import Agent
      from google.adk.agents.llm_agent import ToolUnion
      
      from toolbox_core import ToolboxSyncClient
      
      TOOLBOX_URL = "http://127.0.0.1:5000"
      
      INSTRUCTION = """
      # ROLE
      You are a friendly and factual flight data assistant. Your goal is to help users find the best flights for their needs by providing accurate information with a helpful, professional tone.
      - use the Query Data Tool to answer the user's question, if the tool fails to generate a valid query, ask the user to clarify their question.
      
      # OPERATIONAL CONSTRAINTS
      - TOOL LIMITATION: You only have access to the Query Data Tool. Do not claim to have capabilities beyond what this tool provides.
      - TRANSPARENCY POLICY: Maintain a seamless user experience. Never mention that you are using a tool, querying a database, or generating SQL. Frame all responses as your own direct assistance.
      - SCOPE MANAGEMENT: If a user asks for something beyond your capabilities, politely state that you cannot perform that specific task. Guide the user towards what you can help with.
      
      # COMMUNICATION STYLE
      - Be concise and scannable when listing answers.
      - Maintain a helpful, professional persona.
      
      =====
      
      # QUERY DATA TOOL
      
      Inputs:
      1. query: A natural language formulation of a database query.
      
      Outputs: (all optional)
      1. disambiguation_question: Clarification questions or comments where the tool needs the users' input.
      2. generated_query: The generated query for the user query.
      3. intent_explanation: An explanation for why the tool produced `generated_query`.
      4. query_result: The result of executing `generated_query`.
      5. natural_language_answer: The natural language answer that summarizes the `query` and `query_result`.
      
      Usage guidance:
      1. If `disambiguation_question` is produced, then solicit the needed inputs from the user and try the tool with a new `query` that has the needed clarification.
      2. If `natural_language_answer` is produced, use `intent_explanation` and `generated_query` to see if you need to clarify any assumptions for the user.
      3. If the tool output indicates failure or empty results, explain that clearly using the provided reasoning.
      """
      
      client = ToolboxSyncClient(TOOLBOX_URL)
      
      mcp_tool = client.load_tool("cloud_gda_query_tool")
      
      root_agent = Agent(
          model="gemini-2.5-flash",  # Or newer.
          name="root_agent",
          instruction=INSTRUCTION,
          tools=cast(list[ToolUnion], [mcp_tool]),
      )
      
  7. アプリケーションを起動するには、flight-assistant-app ディレクトリで次のコマンドを実行します。http://127.0.0.1:8000 で ADK ウェブサーバーにアクセスします。

    uv run adk web --port 8000
  8. 「hello」などのテキストを入力して、エージェントとのやり取りを開始します。

    ADK エージェントは一般的な質問に回答し、必要な MCP ツールを呼び出します。

  9. フライトに関する次の質問を入力します。

    How many flights depart from the west side?
    

    この質問に答えるために、MCP ツールが呼び出されます。データベースで the west side が定義されていないため、QueryData は西海岸の空港のリストを想定し、フライト数と説明を返します。エージェントは、この説明を使用してレスポンスで前提を明確にします。

    There are 253 flights departing from the west side.
    
    Please note that "the west side" is not explicitly defined in our records, so this count assumes flights departing from major West Coast airports: Los Angeles (LAX), San Francisco (SFO), San Diego (SAN), Seattle (SEA), Portland (PDX), Las Vegas (LAS), and Phoenix (PHX). If you had a different set of airports in mind, please let me know!
    

  10. エージェント用に生成されたクエリ テンプレートの質問に類似した質問を入力します。

    Help me find flights from San Francisco that avoid the evening rush hour.
    

    先ほど追加した QueryData コンテキストに基づいて、MCP ツールは evening traffic が午後 5 時から午後 7 時の間に発生することを認識します。MCP ツールは、エージェントがレスポンスの作成に使用する関連データを返します。

    Here are the flights departing from San Francisco that avoid the evening rush hour (defined as 5 PM to 7 PM):
    
    * UA 1532 departing at 05:50:00
    * UA 1158 departing at 05:57:00
    * CY 922 departing at 06:38:00
    * OO 5441 departing at 07:08:00
    * UA 616 departing at 07:14:00
    * AA 24 departing at 07:14:00
    * B6 434 departing at 08:00:00
    * AA 242 departing at 08:18:00
    * UA 1739 departing at 08:22:00
    * OO 6336 departing at 08:32:00
    * US 1784 departing at 08:47:00
    * DL 1631 departing at 09:00:00
    * DL 1106 departing at 09:06:00
    * OO 5427 departing at 09:06:00
    * CY 352 departing at 09:25:00
    
  11. QueryData エージェントのコンテキストに追加したコンセプト タイプに基づいて質問を入力します。

    Show me flights to Raleigh-Durham
    

    先ほど追加した値検索コンテキストに基づいて、エージェントは「Raleigh-Durham」が保存されている都市 "Raleigh-durham"(空港コード RDU)と一致することを認識し、エージェントが回答の作成に使用する関連データを返します。

    Here is the flight heading to Raleigh-Durham (RDU):
    
    * Flight UA 1568 departs from San Francisco (SFO) at Gate A30 on 2025-01-02 at 14:55:00 and arrives at Raleigh-Durham (RDU) at Gate A26 on 2025-01-02 at 23:03:00.
    

エージェントのパフォーマンスを反復処理する

ADK ウェブ UI では、Gemini Data Analytics QueryData MCP ツールからのリクエストとレスポンスを検査できます。このレスポンスを使用して、生成された SQL クエリ、結果セット、インテントの説明、曖昧性除去の質問、自然言語の回答などのツール レスポンスを観察し、エージェントのレスポンスの正確性を確認できます。

たとえば、前に入力した入力テキスト How many flights depart from the west side? の場合は、エージェントのバブルをクリックします。左側のナビゲーションの [Event] タブで、functionResponse を展開して次のレスポンスを表示します。

{"result": "{"generatedQuery":"SELECT COUNT(*) AS flight_count FROM flights WHERE CAST(info['departure_airport'] AS STRING) IN ('LAX', 'SFO', 'SAN', 'SEA', 'PDX', 'LAS', 'PHX')","intentExplanation":"The user is asking for the number of flights departing from the 'west side'. Since there is no explicit definition or column for 'west side' in the schema, I will assume this refers to major airports on the West Coast of the United States (e.g., LAX, SFO, SAN, SEA, PDX, LAS, PHX).","queryResult":{"columns":[{"name":"flight_count"}],"rows":[{"values":[{"value":"253"}]}],"totalRowCount":"1"},"naturalLanguageAnswer":"There are 253 flights departing from West Coast airports (LAX, SFO, SAN, SEA, PDX, LAS, PHX)."}"}

回答の精度を向上させる

コンテキストを追加することで、Gemini データ分析 QueryData ツールからの回答の精度を継続的に高めることができます。コンテキスト エンジニアリング エージェントを使用してコンテキストを生成し、更新されたコンテキスト セット ファイルを既存の flights-assistant データ エージェントにアップロードします。詳細については、Bigtable Studio でコンテキスト セットを管理するをご覧ください。コンソールは、アップロードされた新しいコンテキストをすぐに取り込みます。これにより、アプリケーションのダウンタイムなしでエージェントの精度を向上させることができます。

複数のエージェント

開発環境では、tools.yaml ファイル内のツールに異なる名前を割り当てることで、複数のデータ エージェント コンテキストで A/B テストを実行できます。たとえば、cloud_gda_query_tool_v1 や cloud_gda_query_tool_v2 など、異なる名前の 2 つの cloud-gemini-data-analytics-query ツールを定義することで、一意の tools.yaml 構成を作成できます。この設定により、対応するツール名を選択して、必要なコンテキスト バージョンをプログラムで選択するアプリケーション ロジックを実装できます。

次の例 tools.yaml は、データベース ソースに複数のデータ エージェントを設定する方法を示しています。

kind: source
name: gda-api-source
type: cloud-gemini-data-analytics
projectId: PROJECT_ID
---
kind: tool
name: cloud_gda_query_tool_v1
type: cloud-gemini-data-analytics-query
source: gda-api-source
context:
  datasourceReferences:
    DB_SOURCE:
      databaseReference: ...
      agentContextReference:
        contextSetId: "V1_YOUR_CONTEXT_SET_ID"
generationOptions: ...
---
kind: tool
name: cloud_gda_query_tool_v2
type: cloud-gemini-data-analytics-query
source: gda-api-source
context:
  datasourceReferences:
    DB_SOURCE:
      databaseReference: ...
      agentContextReference:
        contextSetId: "V2_YOUR_CONTEXT_SET_ID"
generationOptions: ...

次のように置き換えます。

  • PROJECT_ID: 実際の Google Cloud プロジェクト ID。
  • V1_YOUR_CONTEXT_SET_ID: バージョン 1 のコンテキスト セット ID。
  • V2_YOUR_CONTEXT_SET_ID: バージョン 2 のコンテキスト セット ID。
  • DB_SOURCE: データベース ソースの構成。

クリーンアップ

このチュートリアルを完了したら、作成したリソースを削除して、継続的な費用が発生しないようにします。以降のセクションでは、このようなリソースを削除する方法を説明します。

コンテキスト セットを削除する

インスタンスを削除する前に、作成したコンテキスト セットを削除します。

  1. Google Cloud コンソールで、[Bigtable] ページに移動します。

    Bigtable に移動

  2. リストからインスタンスを選択します。

  3. ナビゲーション メニューで [Bigtable Studio] をクリックします。

  4. [エクスプローラ] ペインで、コンテキスト セットの横にある [アクションを表示()] をクリックします。

  5. [コンテキスト セットを削除] をクリックします。

  6. [コンテキスト セットの削除] ウィンドウで、「flights-assistant」と入力します。

  7. [確認] をクリックします。

インスタンスの削除

始める前にのセクションで作成したインスタンスを削除すると、作成したすべてのオブジェクトも削除されます。

  1. Google Cloud コンソールで、[Bigtable] ページに移動します。

    Bigtable に移動

  2. 「テスト インスタンス」など、削除するインスタンスの名前をクリックします。

  3. [インスタンスの削除] をクリックします。

  4. インスタンス ID を入力し [削除] をクリックして、インスタンスの削除を確定します。

次のステップ