BigQuery
ShanoneのBigQuery連携では、Googleのデータウェアハウスに関する40個のツールをエージェントに提供します — クエリの実行、データセット/テーブル/モデルの管理、データのロード・エクスポート、IAMアクセス制御をカバーしています。はじめに
1
サービスアカウントを作成する
Google Cloud Consoleで、Shanoneに持たせたいBigQuery権限(例:BigQuery Data Editor、BigQuery Job User)を付与したサービスアカウントを作成し、JSONキーを発行します。
2
Shanoneで接続する
エージェントにBigQueryへのクエリを依頼するか、ShanoneダッシュボードのインテグレーションにサービスアカウントキーのJSONを事前に貼り付けます。
3
リクエストを再試行する
キーが保存されると、
bigquery_*ツールに対するshanone_execute_toolの呼び出しが成功するようになります。BigQueryはOAuthや単純なAPIキーではなく、サービスアカウントキー(JSON)を使用します。Shanoneは内部でこのキーを短命なアクセストークンに交換します。
利用可能なツール
Shanoneは BigQuery向けに40個のツールを提供しており、以下のカテゴリに分類されています。クエリ
クエリ
bigquery_query, bigquery_query_and_waitテーブル
テーブル
bigquery_list_tables, bigquery_get_table, bigquery_list_partitions, bigquery_schema_to_json, bigquery_update_table, bigquery_create_table, bigquery_delete_table, bigquery_list_rows, bigquery_preview_tableデータセット
データセット
bigquery_list_datasets, bigquery_get_dataset, bigquery_list_projects, bigquery_get_service_account_email, bigquery_update_dataset, bigquery_create_dataset, bigquery_delete_datasetジョブ
ジョブ
bigquery_list_jobs, bigquery_get_job, bigquery_cancel_job, bigquery_delete_job_metadataロード、コピー & エクスポート
ロード、コピー & エクスポート
bigquery_load_table_from_uri, bigquery_load_table_from_json, bigquery_copy_table, bigquery_extract_table, bigquery_insert_rows, bigquery_insert_rows_jsonモデル
モデル
bigquery_list_models, bigquery_get_model, bigquery_update_model, bigquery_delete_modelルーチン(ストアドプロシージャ & UDF)
ルーチン(ストアドプロシージャ & UDF)
bigquery_list_routines, bigquery_get_routine, bigquery_create_routine, bigquery_update_routine, bigquery_delete_routineIAM
IAM
bigquery_get_iam_policy, bigquery_set_iam_policy, bigquery_test_iam_permissionsよくある使い方
アドホックなデータ分析
データセットに対してSQLクエリを実行し、結果を平易な言葉でまとめる
データパイプライン運用
GCSのURIからテーブルにデータをロードし、ロードジョブの完了まで監視する
スキーマ & アクセスの点検
新しいチームにデータセットへのアクセスを許可する前に、テーブルスキーマとIAMポリシーを確認する
MLモデルの管理
レポーティングパイプラインで使われているBigQuery MLモデルを一覧・確認する
トラブルシューティング
bigquery_queryが権限拒否エラーで失敗する
bigquery_queryが権限拒否エラーで失敗する
bigquery_test_iam_permissionsでサービスアカウントのIAMロールを確認してください — ほとんどの読み取り操作には、対象データセットへのbigquery.jobs.createとbigquery.tables.getDataが最低限必要です。bigquery_queryが完了しないジョブを返す
bigquery_queryが完了しないジョブを返す
長時間実行されるクエリはブロッキングせず、ジョブ参照を返します。短いクエリでブロッキングが問題ない場合は
bigquery_query_and_waitを使い、それ以外はstatus.stateがDONEになるまでbigquery_get_jobをポーリングしてください。bigquery_load_table_from_uriが静かに失敗する、または一部しかロードされない
bigquery_load_table_from_uriが静かに失敗する、または一部しかロードされない
ロードジョブの
errorResultとerrorsフィールドをbigquery_get_jobで確認してください — スキーマの不一致やソースファイル内の不正な行が最も多い原因です。