> ## Documentation Index
> Fetch the complete documentation index at: https://docs.shanone.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Snowflake

> Snowflakeデータウェアハウスを操作する — データベース、テーブル、ウェアハウス、タスク、Cortex AI

# Snowflake

ShanoneのSnowflake連携は、SQL実行、オブジェクトモデル全体(データベース、スキーマ、テーブル、ビュー、ウェアハウス)、データエンジニアリング用プリミティブ(ストリーム、タスク、パイプ、動的/Icebergテーブル)、ガバナンス(ロール、権限、ネットワークポリシー)、Cortex AIにまたがる142個のツールをエージェントに提供します——データプラットフォームの運用の大半をエージェントから直接実行できます。

## はじめに

<Steps>
  <Step title="キーペアを生成する">
    Snowflakeは単純なトークンではなくキーペア認証を使用します。RSAキーペアを生成し、公開鍵をSnowflakeユーザーに設定します(`ALTER USER ... SET RSA_PUBLIC_KEY = '...'`)。
  </Step>

  <Step title="Shanoneで認証情報を接続する">
    エージェントにSnowflake関連の作業を依頼(例: 「すべてのウェアハウスと現在のサイズを一覧表示して」)するか、Shanoneダッシュボードの**連携**からAccount Identifier、Username、Private Key(PEM)を事前に登録しておきます。3つすべてが必須です。
  </Step>

  <Step title="リクエストを再実行する">
    接続が完了すると、`snowflake_*`ツールに対する`shanone_execute_tool`呼び出しが成功するようになります。
  </Step>
</Steps>

## 利用可能なツール

ShanoneはSnowflake向けに**142個のツール**を、以下のカテゴリに整理して提供しています。

<AccordionGroup>
  <Accordion title="SQL実行 & ステートメント">
    `snowflake_execute_sql`, `snowflake_get_statement_status`, `snowflake_get_statement_result`, `snowflake_cancel_statement`, `snowflake_query`, `snowflake_execute_dml`, `snowflake_execute_ddl`, `snowflake_execute_multi_statements`, `snowflake_execute_async`, `snowflake_poll_until_complete`, `snowflake_describe_table`
  </Accordion>

  <Accordion title="データベース、スキーマ & ロール">
    `snowflake_list_databases`, `snowflake_get_database`, `snowflake_create_database`, `snowflake_delete_database`, `snowflake_list_schemas`, `snowflake_get_schema`, `snowflake_create_schema`, `snowflake_delete_schema`, `snowflake_list_roles`, `snowflake_get_role`, `snowflake_create_role`, `snowflake_delete_role`, `snowflake_list_database_roles`, `snowflake_get_database_role`, `snowflake_create_database_role`, `snowflake_delete_database_role`, `snowflake_list_users`, `snowflake_get_user`, `snowflake_create_user`, `snowflake_delete_user`
  </Accordion>

  <Accordion title="テーブル & ビュー">
    `snowflake_list_tables`, `snowflake_get_table`, `snowflake_delete_table`, `snowflake_create_table`, `snowflake_update_table`, `snowflake_clone_table`, `snowflake_undrop_table`, `snowflake_list_views`, `snowflake_get_view`, `snowflake_create_view`, `snowflake_delete_view`, `snowflake_list_iceberg_tables`, `snowflake_get_iceberg_table`, `snowflake_create_iceberg_table`, `snowflake_create_iceberg_table_as_select`, `snowflake_create_iceberg_from_glue`, `snowflake_create_iceberg_from_delta`, `snowflake_create_iceberg_from_files`, `snowflake_create_iceberg_from_rest`, `snowflake_delete_iceberg_table`, `snowflake_resume_iceberg_recluster`, `snowflake_list_dynamic_tables`, `snowflake_get_dynamic_table`, `snowflake_create_dynamic_table`, `snowflake_delete_dynamic_table`, `snowflake_suspend_dynamic_table`, `snowflake_resume_dynamic_table`, `snowflake_refresh_dynamic_table`
  </Accordion>

  <Accordion title="ウェアハウス & コンピュートプール">
    `snowflake_list_warehouses`, `snowflake_get_warehouse`, `snowflake_create_warehouse`, `snowflake_delete_warehouse`, `snowflake_resume_warehouse`, `snowflake_suspend_warehouse`, `snowflake_list_compute_pools`, `snowflake_get_compute_pool`, `snowflake_create_compute_pool`, `snowflake_update_compute_pool`, `snowflake_delete_compute_pool`, `snowflake_resume_compute_pool`, `snowflake_suspend_compute_pool`, `snowflake_stop_all_services`
  </Accordion>

  <Accordion title="データエンジニアリング(ストリーム・タスク・パイプ)">
    `snowflake_list_streams`, `snowflake_get_stream`, `snowflake_create_stream`, `snowflake_delete_stream`, `snowflake_clone_stream`, `snowflake_list_tasks`, `snowflake_get_task`, `snowflake_create_task`, `snowflake_update_task`, `snowflake_delete_task`, `snowflake_execute_task`, `snowflake_resume_task`, `snowflake_list_pipes`, `snowflake_get_pipe`, `snowflake_create_pipe`, `snowflake_delete_pipe`, `snowflake_refresh_pipe`
  </Accordion>

  <Accordion title="関数、プロシージャ & ステージ">
    `snowflake_list_functions`, `snowflake_get_function`, `snowflake_create_function`, `snowflake_delete_function`, `snowflake_execute_function`, `snowflake_list_procedures`, `snowflake_get_procedure`, `snowflake_create_procedure`, `snowflake_delete_procedure`, `snowflake_call_procedure`, `snowflake_list_stages`, `snowflake_get_stage`, `snowflake_create_stage`, `snowflake_delete_stage`, `snowflake_list_stage_files`, `snowflake_get_presigned_url`
  </Accordion>

  <Accordion title="ガバナンス & セキュリティ">
    `snowflake_grant_privileges`, `snowflake_revoke_privileges`, `snowflake_list_grants`, `snowflake_list_network_policies`, `snowflake_get_network_policy`, `snowflake_create_network_policy`, `snowflake_delete_network_policy`, `snowflake_list_network_rules`, `snowflake_create_network_rule`, `snowflake_delete_network_rule`, `snowflake_list_secrets`, `snowflake_get_secret`, `snowflake_create_secret`, `snowflake_delete_secret`, `snowflake_list_tags`, `snowflake_get_tag`, `snowflake_create_tag`
  </Accordion>

  <Accordion title="アラート & 通知">
    `snowflake_list_alerts`, `snowflake_get_alert`, `snowflake_create_alert`, `snowflake_delete_alert`, `snowflake_execute_alert`, `snowflake_list_notification_integrations`, `snowflake_get_notification_integration`, `snowflake_create_notification_integration`, `snowflake_delete_notification_integration`
  </Accordion>

  <Accordion title="イメージリポジトリ & 外部ボリューム">
    `snowflake_list_image_repositories`, `snowflake_get_image_repository`, `snowflake_create_image_repository`, `snowflake_delete_image_repository`, `snowflake_list_external_volumes`
  </Accordion>

  <Accordion title="Cortex AI">
    `snowflake_cortex_chat_completion`, `snowflake_cortex_embed`, `snowflake_cortex_search`, `snowflake_cortex_inference`, `snowflake_cortex_messages`
  </Accordion>
</AccordionGroup>

## よくあるユースケース

<CardGroup cols={2}>
  <Card title="アドホック分析" icon="database">
    ウェアハウスに対してSQLクエリを実行し、結果セットを自然言語で要約する
  </Card>

  <Card title="コスト管理" icon="gauge">
    ウェアハウスを一覧表示し、稼働中のものを確認して、アイドル状態のものをサスペンドしコンピュートコストを削減する
  </Card>

  <Card title="アクセスレビュー" icon="shield-check">
    インシデントレビューの前に、データベースの権限とロールを一覧表示して書き込み権限を持つユーザーを監査する
  </Card>

  <Card title="パイプラインの監視" icon="workflow">
    スキーマ全体のタスクとストリームの状態を確認し、壊れたELTパイプラインを検出する
  </Card>
</CardGroup>

## トラブルシューティング

<AccordionGroup>
  <Accordion title="すべての呼び出しが認証エラーになる">
    SnowflakeはAccount Identifier、Username、Private Keyの3つすべてを必要とします——一部だけでは認証できません。Private KeyがSnowflakeユーザーに登録された公開鍵に対応する、暗号化されていないPEM形式であることを再確認してください。
  </Accordion>

  <Accordion title="snowflake_execute_sqlが結果ではなくステートメントハンドルを返す">
    実行時間の長いクエリは非同期で実行されます——返されたステートメントハンドルで`snowflake_get_statement_status`と`snowflake_get_statement_result`をポーリングするか、`snowflake_poll_until_complete`を使って自動的に完了を待ってください。
  </Accordion>

  <Accordion title="ウェアハウスやコンピュートプールの操作が権限不足エラーで失敗する">
    ほとんどのcreate/delete/grant操作は、接続ユーザーのロールに対応するオブジェクト権限が必要です——不具合と決めつける前に、`snowflake_list_grants`で現在のロールが実際にできることを確認してください。
  </Accordion>

  <Accordion title="snowflake_create_dynamic_tableやsnowflake_create_streamは成功するがデータが更新されない">
    動的テーブルとストリームは、設定されたラグ/スケジュールに従うか明示的にトリガーされた場合のみ更新されます——`snowflake_refresh_dynamic_table`を使うか、オブジェクトの`TARGET_LAG`設定を確認してください。
  </Accordion>
</AccordionGroup>
