非構造化データサポートの概要¶
このトピックでは、主要な概念を紹介し、非構造化データファイルにアクセスして共有するための手順を示します。
このトピックの内容:
クラウドストレージサービスのサポート¶
外部(外部クラウドストレージ)ステージと内部(つまりSnowflake)ステージの両方で非構造化データをサポートします。
- 外部ステージ
外部クラウドストレージへのファイルの保存: Amazon S3、Google Cloud Storage、またはサポートされているMicrosoft Azureクラウドストレージサービスの1つ:
BLOBストレージ
Data Lake Storage Gen2
汎用v1
汎用v2
ファイルにアクセスできる URLs の型¶
クラウドストレージ内のファイルにアクセスするには、次の型の URLs を使用できます。
- スコープ URL
ステージに権限を付与せずにステージングされたファイルへの一時的なアクセスを許可するエンコードされた URL。
URL は、 永続クエリ結果期間 が終了すると(つまり、結果キャッシュが期限切れになると)期限切れになります。これは現在24時間です。
- ファイル URL
データベース、スキーマ、ステージ、およびファイルのセットへのファイルパスを識別する URL。ステージに対する十分な権限を持つロールがファイルにアクセスできます。
- 事前署名済み URL
ウェブブラウザーを介してファイルにアクセスするために使用される単純なHTTPS URL。ユーザーは、事前署名済みのアクセストークンを使用し、この URL 経由でファイルに一時的にアクセスできます。アクセストークンの有効期限は構成可能です。
次のテーブルに、これらの URL の型の主な特性を示します。
スコープ URL |
ファイル URL |
事前署名済み URL |
|
---|---|---|---|
ユースケース |
ファイル管理者が同じアカウントの特定のロールにデータファイルへのスコープアクセスを許可することをお勧めします。スコープ URLs を取得するビューを介してファイルへのアクセスを提供します。ビューに対する権限を持つロールのみがファイルにアクセスできます。カスタムアプリケーションでの使用、共有を介した他のアカウントへの非構造化データの提供、またはSnowsightを介した非構造化データのダウンロードとアドホック分析に最適です。 |
ステージ上のファイルに対する永続的 URL。ファイルをダウンロードまたはアクセスするには、ユーザーは GET リクエストでファイル URL を認証トークンとともに REST API エンドポイントに送信します。非構造化データファイルへのアクセスを必要とするカスタムアプリケーションに最適です。 |
Snowflakeへの認証や認証トークンの受け渡しなしで、ファイルをダウンロードまたはアクセスするために使用されます。事前署名済み URLs は開いています。すべてのユーザーまたはアプリケーションは、ファイルに直接アクセスまたはダウンロードできます。非構造化ファイルの内容を表示する必要がある、ビジネスインテリジェンスアプリケーションまたはレポートツールに最適です。 |
生成する方法 |
BUILD_SCOPED_FILE_URL 関数をクエリします。 |
ステージングされたファイルを参照するステージのディレクトリテーブルをクエリする、 または BUILD_STAGE_FILE_URL 関数を呼び出します。 |
GET_PRESIGNED_URL 関数をクエリします。 |
使用法 |
次のオプションを使用できます。
|
次のオプションを使用できます。
|
次のオプションを使用できます。
|
データコンシューマーは、データプロバイダーが共有するセキュアビューで、この型の列値を介して非構造化データファイルにアクセスできます。 |
データコンシューマーは、データプロバイダーが共有するセキュアビューで、この型の列値を介して非構造化データファイルにアクセス できません。 |
データコンシューマーは、データプロバイダーが共有するセキュアビューで、この型の列値を介して非構造化データファイルにアクセスできます。 |
|
認証 |
スコープ URL を生成するユーザーのみが、 URL を使用して参照ファイルにアクセスできます。 |
GET REST API 呼び出しで指定されたロールには、ステージに対する十分な権限が必要です。 USAGE (外部ステージ)または READ (内部ステージ)。 |
事前署名済み URL を持っている人は誰でも、トークンの存続期間中、参照されたファイルにアクセスできます。 |
有効期限 |
クエリ結果キャッシュの有効期限(現在は24時間)。 |
永続。 |
|
ステージのみに対するサーバー側の暗号化¶
事前署名済み URLs を使用したファイルアクセスをサポートするには、クライアント側の暗号化ではなくサーバー側の暗号化を使用して、名前付きの内部ステージまたは外部ステージを作成します。ステージ内のファイルがクライアント側で暗号化されている場合、ユーザーは暗号化キーにアクセスせずにステージングされたファイルを読み取ることはできません。
注釈
現在、サーバー側の暗号化を使用した内部ステージの作成は、次のSnowflakeクライアントバージョンに限定されています。
JDBC ドライバーv3.12.11(またはそれ以上)
ディレクトリテーブル¶
ディレクトリテーブルは、ステージングされたファイルのカタログをクラウドストレージに保存します。十分な権限を持つロールは、ディレクトリテーブルにクエリを実行して、ファイル URLs を取得し、ステージングされたファイルにアクセスできます。
詳細については、 ディレクトリテーブル をご参照ください。
SQL 関数¶
データファイルにアクセスするために、次の ファイル関数 が用意されています。
SQL 関数 |
説明 |
---|---|
ステージ名を入力として使用して、外部または内部の名前付きステージ URL を返します。 |
|
クラウドストレージ内のステージ名と絶対ファイルパスを入力として使用して、ステージ内の場所を基準にしたステージングされたファイルのパスを抽出します。 |
|
ステージ名と、ステージ内の位置を基準にしたファイルのパスを入力として使用して、ステージングされたファイルの絶対パスを返します。 |
|
ステージ名と相対ファイルパスを入力として使用して、ステージングされたファイルに事前署名済み URL を生成します。この関数を使用して、外部ステージのファイルにアクセスします。 |
|
ステージ名と相対ファイルパスを入力として使用して、Snowflakeでホストされるスコープ URL をステージングされたファイルに生成します。 |
|
ステージ名と相対ファイルパスを入力として使用して、Snowflakeがホストするファイル URL をステージングされたファイルに生成します。 |
Snowsightでステージングされたファイルのダウンロード¶
ユーザーは、 Snowsight ワークシートの結果テーブルで生成されたスコープ、事前署名、またはファイル URL をクリックして、参照ファイルをダウンロードできます。
Snowflakeのウェブインターフェイスである Snowsight にログインします。
Worksheets » My Worksheets (または、 Recent の下、または Folders でローカルワークシートを開く) » <ワークシート名> をクリックします。
サポートされているメソッドのいずれかを使用して、スコープ、事前署名、またはファイル URL をクエリで返します。
結果テーブルにある URL をクリックします。Snowsightは、 URL によって参照されるファイルをダウンロードします。