チュートリアル:Snowpipeストリーミング・ハイパフォーマンス・アーキテクチャ SDK の使用を始める¶
このチュートリアルでは、新しいハイパフォーマンスアーキテクチャを利用したデモアプリケーションのセットアップと実行について、 snowpipe-streaming SDK で手順を説明します。
前提条件¶
デモを実行する前に、以下の前提条件を満たしていることを確認してください。
Snowflakeアカウント: データベース、スキーマ、テーブル、およびセキュリティ設定管理のための十分な権限を持つSnowflakeアカウントへのアクセスがあることを確認してください。
ネットワークアクセス:ネットワークがSnowflakeおよび AWSS3 へのアウトバウンド接続を許可していることを確認します。必要に応じて ファイアウォールルールを調整します。これは、 SDK が Snowflakeと AWS S3 にRESTAPI コールをするからです。
Java開発環境Java 11以降と、依存関係管理のためのMavenをインストールします。
Python:Pythonバージョン3.9以降をインストールします。
Snowpipe Streaming SDKs およびサンプルコード:`Java SDK<https://central.sonatype.com/artifact/com.snowflake/snowpipe-streaming>`_ または `Python SDK<https://pypi.org/project/snowpipe-streaming/>`_ を取得し、ステップ3:デモプロジェクトのセットアップ で希望の言語のサンプルコードをダウンロードします。
始めましょう¶
このセクションでは、デモアプリケーションのセットアップと実行に必要な手順の概要を説明します。
ステップ1:Snowflakeオブジェクトの構成¶
snowpipe-streaming SDK を使用する前に、Snowflake 環境内にターゲットテーブルと専用の PIPE オブジェクトを作成する必要があります。クラシックアーキテクチャとは異なり、ハイパフォーマンスアーキテクチャでは、データのインジェスチョンに PIPE オブジェクトが必要です。
認証用キーペアの生成¶
OpenSSL を使って認証用の秘密キーと公開キーのキーペアを生成します。詳細については、 キーペア認証とキーペアローテーション をご参照ください。
ターミナルで以下のコマンドを実行し、キーを生成します。
openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out rsa_key.p8 -nocrypt
openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pub
PUBK=$(cat ./rsa_key.pub | grep -v KEY- | tr -d '\012')
echo "ALTER USER MY_USER SET RSA_PUBLIC_KEY='$PUBK';"
重要
生成された rsa_key.p8 (秘密キー) と rsa_key.pub (公開キー) ファイルを安全に保存します。これらは、その後の認証ステップで使用されます。
データベース、スキーマ、テーブル、パイプの作成、ユーザー認証の構成¶
Snowflakeアカウントで(Snowsightまたは SnowSQL を使用して)次の SQL コマンドを実行して、必要なオブジェクトを作成し、ユーザーの認証を構成します。MY_USER、 MY_DATABASE などのプレースホルダーを、お好きな名前に置き換えてください。
-- Create Database and Schema
CREATE OR REPLACE DATABASE MY_DATABASE;
CREATE OR REPLACE SCHEMA MY_SCHEMA;
-- Create Target Table
CREATE OR REPLACE TABLE MY_TABLE (
data VARIANT,
c1 NUMBER,
c2 STRING
);
-- Create PIPE Object for Streaming Ingestion
CREATE OR REPLACE PIPE MY_PIPE
AS COPY INTO MY_TABLE FROM (SELECT $1, $1:c1, $1:ts FROM TABLE(DATA_SOURCE(TYPE => 'STREAMING')));
-- Configure Authentication Policy (optional, but recommended for explicit control)
CREATE OR REPLACE AUTHENTICATION POLICY testing_auth_policy
AUTHENTICATION_METHODS = ('SAML', 'PASSWORD', 'OAUTH', 'KEYPAIR')
CLIENT_TYPES = ('SNOWFLAKE_UI', 'SNOWSQL', 'DRIVERS');
-- Create or Modify User for SDK Authentication
CREATE OR REPLACE USER MY_USER; -- Or ALTER USER MY_USER if it already exists
-- Grant necessary roles to the user
GRANT ROLE ACCOUNTADMIN TO USER MY_USER; -- Grant a role with sufficient privileges
-- Apply authentication policy (if created)
ALTER USER MY_USER SET AUTHENTICATION POLICY testing_auth_policy;
-- Set default role (optional)
ALTER USER MY_USER SET DEFAULT_ROLE=ACCOUNTADMIN;
-- Set the public key for key-pair authentication
ALTER USER MY_USER SET RSA_PUBLIC_KEY='YOUR_FORMATTED_PUBLIC_KEY';
注釈
YOUR_FORMATTED_PUBLIC_KEY をキー生成ステップの PUBK 変数の出力に置き換えます。
ステップ2:認証プロファイルの構成¶
デモアプリケーションでは、認証の詳細を含む接続設定を保存するために profile.json ファイルが必要です。SDK は、キーペア認証を使用して安全な接続を行います。
プロファイル構成ファイルの作成¶
デモプロジェクトのルートディレクトリで profile.json ファイルを作成または更新します。
profile.jsonテンプレート¶
{
"user": "MY_USER",
"account": "your_account_identifier",
"url": "https://your_account_identifier.snowflakecomputing.com:443",
"private_key_file": "rsa_key.p8"
}
プレースホルダーを置き換えます。
MY_USER:ステップ1:Snowflakeオブジェクトの構成 で構成されたSnowflakeのユーザー名。your_account_identifier:Snowflake アカウント識別子(例:xy12345)。rsa_key.p8:ステップ1:Snowflakeオブジェクトの構成 で生成したプライベートキーファイル。
ステップ3:デモプロジェクトのセットアップ¶
JAR 依存関係の追加
Snowpipe Streaming SDKを含めるには、Maven :code:`pom.xml`に以下の依存関係を追加します。Maven はパブリックリポジトリから JAR を自動的にダウンロードします。
<dependency>
<groupId>com.snowflake</groupId>
<artifactId>snowpipe-streaming</artifactId>
<version>YOUR_SDK_VERSION</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.18.1</version>
</dependency>
重要
YOUR_SDK_VERSION を Maven Central で利用できる特定のバージョンに置き換えます。
サンプルJavaコード を**ダウンロード**します。
** Python依存関係の追加**
SDK にはPythonバージョン3.9以降が必要です。
Python の Snowpipe Streaming SDK をインストールするには、次のコマンドを実行します。
pip install snowpipe-streaming
このパッケージの詳細については、`PyPI<https://pypi.org/project/snowpipe-streaming/>`_ をご参照ください。
サンプルPythonコード を**ダウンロード**します。
プロファイルファイルの配置¶
ステップ2:認証プロファイルの構成 で構成した profile.json ファイルが、プロジェクトのルートディレクトリにあることを確認してください。
ステップ4:提供されたコード例を使用した、デモアプリケーションの実行¶
ターミナルで、プロジェクトのルートディレクトリにナビゲートします。
ビルドと実行
プロジェクトの構築:
mvn clean install
メインクラスを実行します。
mvn exec:java -Dexec.mainClass="com.snowflake.snowpipestreaming.demo.Main"
デモアプリケーションの実行
Pythonデモを実行します。
python example.py
ステップ5:データの検証¶
デモを実行した後、Snowflakeで取り込まれたデータを確認します:
SELECT COUNT(*) FROM MY_DATABASE.MY_SCHEMA.MY_TABLE;
SELECT * FROM MY_DATABASE.MY_SCHEMA.MY_TABLE LIMIT 10;