Create an Azure stage¶
ステージは、ファイル内のデータをテーブルにロードできるように、データファイルの保存場所(つまり、「ステージングした場所」)を指定します。
データは、指定されたAzureコンテナーまたはAzureの「フォルダー」パス(つまり、キー値プレフィックス)のファイルから直接ロードできます。パスが / で終わる場合、対応するAzureフォルダー内のすべてのオブジェクトがロードされます。
外部ステージ¶
Snowflakeは、Azureコンテナー内のファイルからの直接ロードに加えて、次のようなステージングファイルに必要なすべての情報をカプセル化する名前付き外部ステージの作成をサポートしています。
ファイルがステージングされるAzureコンテナー。
コンテナーの名前付きストレージ統合オブジェクトまたはAzure認証情報(保護されている場合)。
暗号化キー(コンテナー内のファイルが暗号化されている場合)。
Named external stages are optional, but recommended when you plan to load data regularly from the same location. For instructions for creating an external stage, see Create an external stage below.
注釈
Azure外部ステージのクエリパフォーマンスを向上させるには、 Microsoftネットワークルーティング を使用するようにネットワークルーティングを構成します。手順については、 Azureドキュメント を参照してください。
Create an external stage¶
SQL またはウェブインターフェイスを使用して、名前付き外部ステージを作成できます。
注釈
ステージを作成するには、必要な権限が付与されているか継承されているロールを使用する必要があります。詳細については、CREATE STAGE の アクセス制御の要件 をご参照ください。
Create an external stage using SQL¶
CREATE STAGE コマンドを使用して、外部ステージを作成します。
次の例では、 my_azure_stage という名前の外部ステージを作成します。CREATE ステートメントには、 myaccount アカウントのAzureコンテナー container1 にアクセスするために Configure an Azure container for loading data で作成された、 azure_int ストレージ統合が含まれています。
データファイルは load/files/ パスに保存されます。ステージは、パスに保存されているファイル内のデータを説明する、 my_csv_format という名前の名前付きファイル形式オブジェクトを参照します。
CREATE STAGE my_azure_stage
STORAGE_INTEGRATION = azure_int
URL = 'azure://myaccount.blob.core.windows.net/mycontainer/load/files/'
FILE_FORMAT = my_csv_format;
注釈
Data Lake Storage Gen2を含む、サポートされているすべてのタイプのAzure BLOBストレージアカウントに、 blob.core.windows.net エンドポイントを使用します。
注釈
ステージに名前付きファイル形式オブジェクト(または個々のファイル形式オプション)を指定すると、後でステージからデータをロードするために使用する COPY コマンドで、同じファイル形式オプションを指定する必要がありません。ファイル形式オブジェクトとオプションの詳細については、 CREATE FILE FORMAT をご参照ください。
Pythonを使った外部ステージの作成¶
Snowflake Python APIs の StageCollection.create メソッドを使用して、外部ステージを作成します。
前述の SQL の例と同様に、以下のPythonの例では、 my_azure_stage という外部ステージを作成します。
from snowflake.core.stage import Stage
my_stage = Stage(
name="my_azure_stage",
storage_integration="azure_int",
url="azure://myaccount.blob.core.windows.net/mycontainer/load/files/"
)
root.databases["<database>"].schemas["<schema>"].stages.create(my_stage)
注釈
Python API は現在、 CREATE STAGE SQL コマンドの FILE_FORMAT パラメーターをサポートしていません。
Create an external stage using Snowsight¶
Snowsight を使用して名前付き外部ステージを作成するには、次を実行します。
Sign in to Snowsight.
:go-to:`作成` » Stage » External Stage。
外部クラウドストレージプロバイダーを選択します: Amazon S3 、 Microsoft Azure 、または Google Cloud Platform。
Create Stage ダイアログで、 Stage Name を入力します。
ステージを作成するデータベースとスキーマを選択します。
外部クラウドストレージの場所の URL を入力します。
外部ストレージが公開されていない場合は、 Authentication を有効にして詳細を入力します。詳細については、 CREATE STAGE をご参照ください。
オプションで、 Directory table の選択を解除します。ディレクトリテーブルを使用すると、ステージ上のファイルを確認できますが、ウェアハウスが必要になるためコストがかかります。現時点ではこのオプションの選択を解除し、後でディレクトリテーブルを有効にすることもできます。
Directory table を有効にすると、オプションで Enable auto-refresh を選択して、イベント通知または通知統合を選択し、ファイルが追加または削除されたときにディレクトリテーブルを自動的にリフレッシュします。詳細については、 ディレクトリテーブルのメタデータ自動更新 をご参照ください。
ファイルが暗号化されている場合は、Encryption を有効にして詳細を入力します。
(オプション)生成された SQL ステートメントを表示するには、SQL Preview を展開します。AUTO_REFRESH などのステージの追加オプションを指定するには、ワークシートでこの SQL プレビューを開きます。
Create を選択します。