メインコンテンツへスキップ

Snowflake を接続する

Snowflake は、組織がデータを保存・処理・分析するのに役立つクラウドベースのデータウェアハウスプラットフォームです。Snowflake の利用コストは、データ転送・ストレージ・コンピュートリソースの利用コストを集計したものです。大規模なデータ処理および分析ニーズを持つ組織では、Snowflake コストがクラウド支出の大きな割合を占めることがよくあります。

DoiT は、他のクラウドプロバイダからのデータとあわせて Snowflake のコストおよび利用状況データを連携できるようにし、クラウド全体の支出を包括的に把握し、主要なコストドライバー全体でコスト最適化を行えるよう支援します。

Snowflake はパスワードベース認証を非推奨にしています
  • 初めて DoiT と Snowflake を接続する場合 は、セットアップウィザードの手順に従ってください。接続がキーペア認証を使用するように設定されます。

  • 既存の DoiT との Snowflake 接続が 旧来のパスワードベース認証方式を使用している場合は、より安全なキーペア認証を使用するように認証方式を更新する必要があります。

認証方式の変更の詳細については、Snowflake のドキュメント Security MFA rollout および Key-pair authentication を参照してください。

開始前の準備

  • 1 つ以上の Snowflake アカウントを接続できます。複数アカウントを接続する場合は、接続したい各アカウントについて 接続手順 を繰り返してください。

  • DoiT との接続は、Snowflake を直接購入している場合、またはマーケットプレイス経由で購入している場合に行えますが、Snowflake リセラー経由で契約している場合は利用できません。お使いの Snowflake アカウントが互換性を持つか確認するには、次のスクリプトを実行してください。リセラー経由での購入が非互換の最も一般的な理由ですが、その他の要因で接続できない場合もあります。スクリプトがエラーを返す、またはクエリが false を返した場合、その Snowflake アカウントは非互換であるため、DoiT コンソールに接続できません。

    1. 接続したいアカウントで Snowflake コンソール にサインインします。

    2. ProjectsWorksheets を選択し、必要に応じて新規または既存のワークシートを開きます。

    3. 以下のスクリプトをコピーしてワークシートに貼り付けます。

      SELECT
      EXISTS(SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY LIMIT 1),
      EXISTS(SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.WAREHOUSE_EVENTS_HISTORY LIMIT 1),
      EXISTS(SELECT * FROM SNOWFLAKE.ORGANIZATION_USAGE.STAGE_STORAGE_USAGE_HISTORY LIMIT 1),
      EXISTS(SELECT * FROM SNOWFLAKE.ORGANIZATION_USAGE.DATABASE_STORAGE_USAGE_HISTORY LIMIT 1),
      EXISTS(SELECT * FROM SNOWFLAKE.ORGANIZATION_USAGE.STORAGE_DAILY_HISTORY LIMIT 1),
      EXISTS(SELECT * FROM SNOWFLAKE.ORGANIZATION_USAGE.USAGE_IN_CURRENCY_DAILY LIMIT 1),
      EXISTS(SELECT * FROM SNOWFLAKE.ORGANIZATION_USAGE.WAREHOUSE_METERING_HISTORY LIMIT 1),
      EXISTS(SELECT * FROM SNOWFLAKE.ORGANIZATION_USAGE.RATE_SHEET_DAILY LIMIT 1);
    4. ロールを 1 つ選択します。このスクリプトは特別な権限を必要としないため、PUBLIC を含む任意のロールで実行できます。

    5. Run を選択します。

  • DoiT コンソールで Snowflake データを使用するために、お客様に代わって DOIT_WAREHOUSE という名前の warehouse を作成します。これにより、既存の warehouse に干渉しないようにしています。

  • クエリは 1 日に複数回、各回およそ 15 分間実行します。通常、これにより 1 日あたり約 1 米ドルのコストが発生します。DOIT_WAREHOUSE の正確な料金を確認するには、Cloud Analytics(クラウド分析)のレポートを実行し、フィルターとして warehouse 名を使用してください。例については、DOIT_WAREHOUSE のコスト を参照してください。

学習パスを選択

以下のステップバイステップの手順に従うか、視覚的な操作手順として ▶️ インタラクティブデモ を確認してください。

必要な権限

Snowflake アカウントを DoiT に接続するには、次の条件が必要です。

  • DoiT アカウントに Billing Profiles Admin 権限が付与されていること。

  • Snowflake アカウントで、管理者権限を持つ有効な Snowflake サブスクリプションがあること。

Snowflake アカウントを接続する

DoiT コンソールには、Snowflake アカウントの接続を支援するステップバイステップのウィザードが用意されています。

ウィザードを起動するには、次のようにしてください。

  1. 画面上部のナビゲーションメガメニューから Data ingestion and integrations > Integrations を選択します。

  2. Snowflake インテグレーションカードを探します。

    • 最初のアカウントを追加する場合は、Connect + を選択します。

    • 追加のアカウントを設定する場合は、Manage を選択し、続いて Connect new account を選択します。

ウィザードは 4 つのステップで構成されています。

Snowflake connection setup wizard

ステップ 1: 要件

最初のステップには、実行が必要なスクリプトに関する説明が含まれます。このスクリプトは、お使いのアカウントに次のリソースを作成します。

  • 次の Snowflake 権限を持つ DoiT ロール: ORGANIZATION_USAGE_VIEWERGOVERNANCE_VIEWERORGANIZATION_BILLING_VIEWERUSAGE_VIEWERSECURITY_VIEWERUSAGE_VIEWER は標準的な Cortex 利用テレメトリを提供し、SECURITY_VIEWER はユーザー ID を名前とメールアドレスに解決します。詳細は Snowflake database roles を参照してください。

  • 上記の DoiT ロールを持ち、キーペア認証用に設定されたユーザー。

  • DOIT_WAREHOUSE という名前の warehouse。

要件を確認したら、Next を選択して接続の設定に進んでください。

セキュリティのベストプラクティスとして、DoiT の特定の IP アドレスからのみ Snowflake アカウントへのアクセスを許可する Snowflake Network policy を作成することを強く推奨します。このようなポリシーがある場合、Google Cloud の VPC と Cloud NAT を使用して、Snowflake への送信リクエストがすべて DoiT の IP アドレス経由でルーティングされるようにします。このポリシーは、次のステップで作成される DoiT サービスアカウントに適用されます。

まだ DoiT の IP アドレスを含む network policy を設定していない場合:

  1. ウィザードで表示される SQL スクリプトをコピーし、Snowflake コンソールで実行して、DoiT の IP アドレスへのアクセスに限定する network policy を作成してください。

  2. ウィザード上のチェックボックスはオフのままにし、Next を選択して続行してください。

Snowflake 接続を更新しており、既存の network policy がある場合:

  1. 既存のポリシーがあることを示すために、ウィザード上のチェックボックスをオンにし、Next を選択して続行してください。

ステップ 3: 接続を設定

このステップでは、Snowflake アカウントと DoiT コンソール間の接続を設定します。

  1. 管理者権限を持つアカウントで Snowflake コンソール にサインインします。

  2. ProjectsWorksheets を選択し、ワークシートを開きます。

  3. ステップバイステップウィザードに表示されるスクリプトをコピーし、Snowflake のワークシートに貼り付けます。

  4. ワークシートの上部で、スクリプトを実行する warehouse を選択します。

  5. ワークシートを実行するロールを選択し、Run ボタンを展開して Run All を選択します。

  6. DoiT コンソールのウィザード画面に戻り、Snowflake のアカウント ID と組織 ID を入力します。これらは URL https://app.snowflake.com/ORGANIZATION_ID/ACCOUNT_ID から確認できます。同じ組織を複数回接続することはできません。

    併せて、Finding the organization and account name for an account も参照してください。

ステップ 4: 接続をテスト

最後のステップでは、Test connection を選択して Snowflake への接続をテストします。テストには通常数秒かかります。

接続エラーの原因
  • Organization がすでに接続されている場合: すでに接続済みの organization を再度接続しようとすると、接続テストは失敗します。この場合は別の organization を接続するか、セットアップを終了して既存の接続を使用してください。既存の Snowflake 接続を確認するには、Integrations catalog に移動し、Snowflake インテグレーションカードで Manage を選択してください。

  • 認証方式の更新中の場合: 既存の接続について認証方式を更新している場合は、新規接続の作成ではなく、アセットリストから Update authentication オプションを使用していることを確認してください。

  • 認証情報が誤っている場合: Snowflake の URL https://app.snowflake.com/ORGANIZATION_ID/ACCOUNT_ID から取得した organization ID および account ID を正しく入力しているか確認してください。

認証方式を更新する

新しいキーペア認証方式を使用するように接続を更新するには、DoiT コンソール内のガイド付きフローに従ってください。

  1. Integrations catalog に移動します。Snowflake インテグレーションを検索し、そのインテグレーションカードで Manage を選択します。

  2. 有効な Snowflake 接続を見つけ、右側メニューで Update authentication を選択します。

  3. Snowflake アカウントを接続する の手順を繰り返してください。Set up connection ステップには、キーペア認証を正しく設定するための更新済みスクリプトが含まれています。

GenAI ユーザーアトリビューションを有効にする

DoiT は、Snowflake Cortex AI のコストを個々のモデル・関数・エージェント・ユーザーにアトリビュートします。AI Functions のユーザー名を解決し、AI Functions および Cortex Agents の請求行にメールアドレスを追加するために、DoiT は Snowflake アカウントのユーザーディレクトリを読み取ります。この処理には SECURITY_VIEWER データベースロールが必要です。

Snowflake を初めて接続する場合、セットアップスクリプトには既にこの付与が含まれています。既存の接続がある場合は、Snowflake で ACCOUNTADMIN として次のステートメントを実行してください。

USE ROLE ACCOUNTADMIN;
GRANT DATABASE ROLE SNOWFLAKE.SECURITY_VIEWER TO ROLE doit_role;

この付与がなくても、Cortex AI のコストアトリビューションは機能します。AI Functions の行にある genai/user_name ラベルは数値のユーザー ID にフォールバックし、genai/user_email は利用不可となります。Cortex Agents の行には、引き続き Snowflake が報告するユーザー名が含まれます。

SECURITY_VIEWER の付与がない場合、Snowflake アセットページにコピー可能な GRANT ステートメントを含む警告バナーが表示されます。このバナーは、次回のデータ取り込みが正常に完了すると自動的に消えます(最大 12 時間)。

Cloud Analytics(クラウド分析)で利用可能な Cortex AI のディメンションについて詳しくは、Cortex AI cost attribution を参照してください。

次のステップ

  • Snowflake アカウントとの接続に成功すると、請求データのインポートを開始します。この処理には最大 1 時間かかる場合があります。データが Cloud Analytics やその他の DoiT の機能で利用可能になると、メールでお知らせします。

  • 初回接続時には、追加された各ウェアハウスについて、過去6か月分の請求および利用状況の履歴データを DoiT が取り込みます。

  • Snowflake のデータがプラットフォームに取り込まれると、Snowflake の支出において cost anomalies を検出した際に通知を受け取ります。

  • すぐに Snowflake データを監視するには、Snowflake Intelligence を確認してください。

  • Snowflake データを扱う方法 についてさらに詳しく学んでください。

▶️ インタラクティブデモ

ハンズオン形式で手順を体験できるインタラクティブデモをお試しください。

デモが正しく表示されない場合は、ブラウザーウィンドウを拡大するか、新しいタブでデモを開いて みてください。