メインコンテンツへスキップ
日本語版はAIによる翻訳です。正確な情報については英語版をご参照ください。
このページの日本語版は、英語版の最新内容に追従できていません。設定作業の前に、必ず英語版で最新の手順と仕様をご確認ください。
このガイドでは、Snowflakeのネイティブ COPY INTO を使用して、SnowflakeからAuxiaのGCSバケットにデータをエクスポートして取り込む方法を説明します。
SnowflakeとAuxiaを連携する際の推奨方法はDirect Connectionです。読み取り専用ロールを通じてAuxiaがテーブルを直接読み取るため、エクスポートジョブの構築や保守は不要です。お客様のスケジュールでファイルをプッシュしたい場合は、GCS Exportをご利用ください。

1. 概要

このアプローチでは、Snowflakeのネイティブ COPY INTO コマンドを使用して、SnowflakeからAuxiaのGCSバケットに直接データをエクスポートします。その後、Auxiaがそこからデータを取り込みます。 フロー

2. Auxiaから提供されるもの

Auxiaは次の情報を提供します。
  • 送信先GCSバケットパス(例:gcs://<your_bucket_path>/)
取得するには、Auxiaのソリューションエンジニアにお問い合わせください。

3. 前提条件

  • このセットアップを行うユーザーに ACCOUNTADMIN ロールが付与されていること(ストレージ統合(Storage Integration)の作成に必要)。
  • コンピュート用の稼働中のSnowflakeウェアハウス。

4. SnowflakeでのSQLの実行

このガイドのすべてのSQLコマンドは、SnowflakeのWebインターフェース(Snowsight)を使用して実行します。 SQLワークシートを開く手順
  1. 左側のナビゲーションメニューで、Projects > Worksheetsを選択します。 Snowflake left nav — Projects → Worksheets
  2. 右上の + ボタンをクリックします。 New worksheet button
  3. SQL Worksheetを選択します。
SQLコマンドを実行する前の準備
  1. ワークシートの右上でRoleを選択します(ストレージ統合コマンドには ACCOUNTADMIN を使用)。 Role selector in worksheet
  2. コンピュートリソース用のWarehouseを選択します。
  3. 必要に応じて、DatabaseとSchemaのコンテキストを選択します。
SQLの実行方法
  • ステートメントにカーソルを置き、Runボタンをクリックします(Macでは Cmd+Enter、Windowsでは Ctrl+Enter)。 Run button
  • すべてのステートメントを実行するには、先にテキスト全体を選択します。

5. 必要なアクション

ステップ1:ストレージ統合の作成

Google Cloud ConsoleからコピーしたGCSバケットパスは gs:// プレフィックスを使用します。Snowflakeでは代わりに gcs:// プレフィックスが必要です。
ACCOUNTADMIN ロールを選択した状態で、ワークシートで次のSQLを実行します。
正常に実行されると、次の画面が表示されます。 Successful storage integration creation

ステップ2:サービスアカウントの取得とAuxiaへの送付

次のSQLを実行して、Snowflakeが生成したGCPサービスアカウントを取得します。
STORAGE_GCP_SERVICE_ACCOUNT の行を見つけ、その property_value をコピーします。 DESC STORAGE INTEGRATION output コピーした値をAuxiaに送付してください。 Auxiaは、GCP IAMを通じてこのサービスアカウントに送信先バケットへの書き込みアクセスを付与します。

ステップ3:スケジュールエクスポートの設定

Auxiaが書き込みアクセスの付与を確認したら、次に示すフォーマットでGCSバケットにデータを配信するスケジュールエクスポートを設定します。 コストに関する考慮事項
  • ウェアハウスコンピュート:各タスク実行時に、ウェアハウスのサイズと実行時間に基づいてSnowflakeクレジットが消費されます。課金は秒単位で、実行ごとに最低1分です。
  • データ転送料金:Snowflakeはクロスリージョンまたはクロスクラウドのデータ転送に対してバイト単位の転送料金を請求します。同一リージョン内の転送は無料です。
  • 推奨事項:適切なサイズのウェアハウス(例:小規模データセットにはX-Small)を使用し、データ量に基づいてエクスポート頻度を検討してください。
データフォーマット要件

ファイルフォーマット

  • Parquet(必須):エクスポートクエリで FILE_FORMAT = (TYPE = PARQUET) を明示的に指定する必要があります。SnowflakeはParquetファイルにデフォルトでSnappy圧縮を使用します。

パーティショニング

データはUTC日付(dt=YYYY-MM-DD/)またはUTC日付と時間(dt=YYYY-MM-DD/hr=HH/)でパーティション分割する必要があります。各フォルダには、そのUTC時間(時間単位のエクスポート)またはUTC日(日単位のエクスポート)にSnowflakeに追加されたデータが含まれる必要があります。 日次パーティショニング
時間単位パーティショニング

データ要件

  • エクスポートしたファイルはイミュータブルとして扱ってください。書き込み後に変更や削除をしないでください。
  • すべてのパーティショニングにUTCタイムスタンプを使用してください。
実現方法 エクスポートでは、前回のエクスポート以降に追加された新しいデータをフィルタリングする必要があります。一般的なアプローチは、各行がSnowflakeに挿入された日時を記録するタイムスタンプカラム(例:export_timestamp)を使用し、そのカラムに基づいてフィルタリングして対応するUTC期間のデータを抽出することです。正確なフィルタリングロジックは、データ構造とパイプラインによって異なります。 参考として、Snowflake Taskの例を次に示します。スケジュール、フィルタリングロジック、エクスポートパスは例です。データパイプラインに合わせて変更してください。

サンプル:時間単位エクスポート

タスクが作成されたら、実行を開始するためにタスクを再開します。

サンプル:日次エクスポート

タスクが作成されたら、実行を開始するためにタスクを再開します。
タスクが正常に作成されると、次の画面が表示されます。 Successful task creation Task creation confirmation

6. タスク実行の監視

エクスポートタスクが正しく実行されていることを確認するには、次のSQLコマンドを使用します。 すべてのタスクを一覧表示
先ほど作成したタスクが結果に表示されます。 SHOW TASKS output 最近のタスク実行履歴を表示
タスクが正常に実行されると、STATE カラムに SUCCEEDED と表示されます。 Task history with SUCCEEDED state タスクの一時停止または再開

7. Auxiaへの確認

エクスポートタスクの実行を確認できたら、Auxiaに通知し、次の内容をお知らせください。
  • エクスポート頻度(時間単位または日次)
  • エクスポートするテーブル

8. 推奨プラクティス

  • Parquetフォーマットを使用:SnowflakeはデフォルトでSnappy圧縮を使用してParquetファイルを圧縮します。
  • UTC日付(日次)またはUTC日付/時間(時間単位)でパーティション分割
  • イミュータビリティの確保:ファイルが書き込まれたら、変更や削除をしないでください。
  • UTCタイムスタンプを使用:すべてのパーティショニングはUTC時間に基づく必要があります。
  • タスク実行の監視:タスク履歴を定期的にチェックして、失敗や遅延がないか確認してください。

9. まとめ

サポートへの問い合わせ

support@auxia.ioまたはAuxiaのソリューションエンジニアまでお問い合わせください。