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

# Snowflake (Direct Connection)

> お客様が付与する読み取り専用ロールを通じて、Auxia が Snowflake テーブルをその場で読み取ります

<Note>
  日本語版はAIによる翻訳です。正確な情報については[英語版](/data-ingestion/data-connections/snowflake/direct-connection)をご参照ください。
</Note>

これは Snowflake を Auxia に連携する際の**推奨**方法です。お客様の Snowflake アカウント内に、専用の読み取り専用ロール、キーペア認証のサービスユーザー、ウェアハウスを作成し、取り込み対象のテーブルに対して Auxia に `SELECT` を付与します。Auxia は直接接続し、定期スケジュールで**読み取り専用**でデータを取得します。テーブルのコピーやエクスポートは行われず、お客様側で保守するスケジュールジョブもありません。

事前に [ソースデータ要件](/ja/data-ingestion/overview#source-data-requirements) を確認し、テーブルが Auxia と連携できる状態であることをご確認ください。

## 1. 概要

お客様のアカウント内に 3 つのオブジェクト — **ウェアハウス**、**サービスユーザー**（キーペア認証）、**読み取り専用ロール** — を作成し、共有したいテーブルへのアクセスをそのロールに付与します。Auxia はそのユーザーとして認証し、**お客様のウェアハウス**をコンピュートとして使用して、各テーブルをスケジュールに従って直接読み取ります。

**フロー:**

```
お客様の Snowflake アカウント                            Auxia
      │
      │  取り込み対象のテーブル / ビュー
      │       │  読み取り専用ロールに SELECT を GRANT
      │       ▼
      │   読み取り専用ロール + キーペアのサービスユーザー + ウェアハウス
      │       │
      │       │  Auxia が直接接続（キーペア認証）し、お客様の
      │       │  ウェアハウスを使ってスケジュールに従い読み取り
      │       ▼
      │   ──────────────（その場で読み取り、読み取り専用）─────────────>  Auxia プラットフォーム
```

**所要時間:** 約 15 分。

**前提条件:**

* `CREATE WAREHOUSE`、`CREATE USER`、`CREATE ROLE`、`GRANT` を実行できるロール（通常は `ACCOUNTADMIN`）。
* 各共有テーブル / ビューに、行が追加・更新された時刻を示す**タイムスタンプ列**（例: `UPDATE_DATE`）があること。これにより Auxia はテーブル全体を再スキャンせず増分読み取りができます。

**Auxia が提供するもの:** サービスユーザーに登録する **RSA 公開鍵**（対応する秘密鍵は Auxia のシークレットマネージャーで保持します。**パスワードのやり取りは一切ありません**）。Auxia は接続の設定とスケジュール（初回の履歴ロードと定期的な増分読み取り）を行い、ソースに対して行数を検証します。

## 2. ウェアハウスの作成

Auxia の読み取り専用に、自動サスペンドする専用ウェアハウスを用意すると、コンピュートコストを抑え、コストの切り分けも容易になります。

```sql theme={null}
CREATE WAREHOUSE IF NOT EXISTS AUXIA_INGESTION_WH
  AUTO_SUSPEND = 60                  -- アイドル 60 秒で自動サスペンド（1 分の最小課金後は秒単位課金）
  AUTO_RESUME = TRUE                 -- 次の読み取り時に自動的に再開
  INITIALLY_SUSPENDED = TRUE;
```

## 3. キーペアのサービスユーザーの作成

Auxia はキーペア認証（パスワードなし）を使用します。Auxia のソリューションエンジニアが下記に貼り付ける**公開鍵**を提供します。

```sql theme={null}
CREATE USER IF NOT EXISTS AUXIA_INGESTION_USER
  PASSWORD = NULL
  RSA_PUBLIC_KEY = '<auxia_public_key>'   -- base64 本体のみ（PEM マーカーや空白は不要）
  DEFAULT_WAREHOUSE = AUXIA_INGESTION_WH;
```

## 4. 読み取り専用ロールの作成とアクセス権の付与

以下を実行します。Auxia に読み取らせたいテーブルまたはビューごとに `GRANT SELECT` の行を繰り返します。

```sql theme={null}
CREATE ROLE IF NOT EXISTS AUXIA_INGESTION_ROLE;

GRANT USAGE  ON WAREHOUSE AUXIA_INGESTION_WH                  TO ROLE AUXIA_INGESTION_ROLE;
GRANT USAGE  ON DATABASE  <your_database>                    TO ROLE AUXIA_INGESTION_ROLE;
GRANT USAGE  ON SCHEMA    <your_database>.<your_schema>      TO ROLE AUXIA_INGESTION_ROLE;

-- 取り込み対象のオブジェクトごとに繰り返す:
GRANT SELECT ON TABLE     <your_database>.<your_schema>.<table> TO ROLE AUXIA_INGESTION_ROLE;

GRANT ROLE AUXIA_INGESTION_ROLE TO USER AUXIA_INGESTION_USER;
```

## 5. 詳細を Auxia に送付

以下を Auxia のソリューションエンジニアに共有してください。

* **アカウント URL** — 例: `https://<org>-<account>.snowflakecomputing.com`
* **ユーザー名**（`AUXIA_INGESTION_USER`）、**ロール**（`AUXIA_INGESTION_ROLE`）、**ウェアハウス**（`AUXIA_INGESTION_WH`）
* 取り込む **データベース / スキーマ / テーブル（またはビュー）名**
* 各オブジェクトの**タイムスタンプ / ウォーターマーク列**（増分読み取りに使用）
* 希望する**更新頻度**（例: 毎時または毎日）と、ソースデータが通常いつ到着するか

Auxia は接続を設定し、各オブジェクトを合意したスケジュールで増分読み取りし、行数を検証して、本番稼働前に確認します。

## 6. コスト

* **読み取りはお客様のアカウント内のお客様のウェアハウスで実行されます** — そのため、ウェアハウスのコンピュートおよび Snowflake のデータ転送（egress）はお客様に課金され、Auxia には Snowflake のコストが発生しません。自動サスペンドする専用ウェアハウスとウォーターマークで絞り込んだ増分読み取りにより、コストは最小限に抑えられます。ウェアハウスのサイズは、オンボーディング時に Auxia がお客様のデータ量に合わせて助言します。
* **お客様側でデータのコピーやステージングは発生しません** — Auxia はテーブルをその場で読み取るため、保存やクリーンアップの対象はありません。

## 7. セキュリティとガバナンス

* **読み取り専用**で、`GRANT` したテーブルだけに限定されます。
* **キーペア認証、パスワードなし** — Auxia は秘密鍵のみ（シークレットマネージャー内）を保持し、お客様は公開鍵のみを登録します。
* **取り消し可能** — ロールを削除するかユーザーを無効化すれば、すべてのアクセスを即時に遮断できます。
* **ローテーション可能** — ユーザーの `RSA_PUBLIC_KEY` はいつでも置き換えられます。対応する秘密鍵のローテーションは Auxia が調整します。
* **ネットワーク制限可能** — Auxia の egress アドレスに限定したい場合は、サービスユーザーに Snowflake のネットワークポリシーを適用できます（ソリューションエンジニアにご相談ください）。

## 8. 推奨プラクティス

* **最小権限を付与** — 取り込み対象のデータベース、スキーマ、テーブルのみを専用ロールに付与します。
* **専用の自動サスペンドウェアハウスを使用** — Auxia の読み取りコストを切り分け、把握しやすくなります。サイズはデータ量に合わせて調整してください（Auxia が助言します）。
* **各テーブルにウォーターマーク列を用意** — 全体スキャンではなく増分読み取りを維持できます。
* 可能な限り**ビューではなくベーステーブルを共有** — Auxia は基盤となるテーブルを直接読み取ります。

## 9. まとめ

| ステップ | アクション | 担当 |
| :- | :- | :- |
| 1 | RSA 公開鍵を提供 | Auxia |
| 2 | ウェアハウス、サービスユーザー、読み取り専用ロールを作成 | お客様 |
| 3 | 取り込み対象オブジェクトへの `USAGE` + `SELECT` を付与 | お客様 |
| 4 | アカウント URL、ユーザー名、ロール、ウェアハウス、テーブル一覧を送付 | お客様 |
| 5 | 接続の設定とスケジュール、初回および増分ロードの実行 | Auxia |

## 10. FAQ

**Auxia は当社の環境に何かを作成・変更しますか？**
いいえ。Auxia は既存のテーブルをその場で読み取るだけです。コピー、エクスポート、スキーマ変更、新しいパイプラインの作成はありません。

**Snowflake のコストは誰が負担しますか？**
お客様ですが、最小限です。読み取りはお客様のアカウント内の専用の自動サスペンドウェアハウスで実行され、ウォーターマークの範囲に絞り込まれます。Auxia には Snowflake のコンピュートコストは発生しません。

**Auxia のアクセスを取り消せますか？**
はい、いつでも可能です。ロールを削除するかサービスユーザーを無効化してください。

**認証情報はどのようにローテーションしますか？**
ユーザーの `RSA_PUBLIC_KEY` を置き換えてください。Auxia は秘密鍵を参照で保持し、ローテーションを調整するため、接続の再設定は不要です。

<Note>
  アカウントへの直接アクセスの付与を避けたい場合は、2 つの代替手段があります: [セキュアデータ共有](/ja/data-ingestion/data-connections/snowflake/data-sharing)（Auxia のアカウントへ共有）と [GCS Export](/ja/data-ingestion/data-connections/snowflake/gcs-export)（Auxia のバケットへファイルをプッシュ）。トレードオフについては Auxia のソリューションエンジニアにご相談ください。
</Note>

## サポートが必要な場合

[**support@auxia.io**](mailto:support@auxia.io) または Auxia のソリューションエンジニアにお問い合わせください。
