チュートリアル: Snowpipeストリーミング・ハイパフォーマンス・アーキテクチャ SDK の使用を始める¶
このチュートリアルでは、新しいハイパフォーマンスアーキテクチャを利用したデモアプリケーションのセットアップと実行について、 snowpipe-streaming
SDK で手順を説明します。
前提条件¶
デモを実行する前に、以下を確認してください。
Snowflake アカウント: データベース、スキーマ、テーブルの作成、セキュリティセットの管理に十分な権限を持つSnowflakeアカウントへのアクセス。
Java開発環境: Java 11以上がインストールされ、依存関係管理のためにMavenがインストールされていること。
Snowpipe Streaming JAR:
snowpipe-streaming.jar
ファイル。手動でプロジェクトに含める必要があります。ステップ3:デモプロジェクトのセットアップ が示すように、 JAR の最新バージョン をプロジェクトに含めてください。
ダウンロード サンプルJavaコード。
ネットワークアクセス:ネットワークがSnowflakeおよび AWS S3へのアウトバウンド接続を許可していることを確認します。SDK が Snowflake と AWS S3 に REST API コールを行うため、必要に応じてファイアウォールルールを調整します。
始めましょう¶
このセクションでは、デモアプリケーションのセットアップと実行に必要な手順の概要を説明します。
ステップ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 は、キーペア認証を使用して安全な接続を行います。
プロファイル構成ファイルの作成¶
提供された Java デモ・プロジェクトのルート・ディレクトリに profile.json
ファイルを作成または更新します。
profile.json
ファイルに含める秘密キー (rsa_key.p8
) を形式化するには、ターミナルで以下のコマンドを実行します。
sed 's/$/\\n/' rsa_key.p8 | tr -d '\n'
このコマンドは改行文字をエスケープして秘密キーを出力するので、 JSON の文字列に適しています。
profile.jsonテンプレート¶
{
"user": "MY_USER",
"account": "your_account_identifier",
"url": "https://your_account_identifier.snowflakecomputing.com:443",
"private_key": "YOUR_FORMATTED_PRIVATE_KEY"
}
プレースホルダーを置き換えます。
MY_USER
: 前のステップで構成したSnowflakeユーザー名。your_account_identifier
: Snowflake アカウント識別子(例:xy12345
)。YOUR_FORMATTED_PRIVATE_KEY
: 上記で実行されたsed
コマンドの出力。形式例:-----BEGIN PRIVATE KEY-----\n-----END PRIVATE KEY-----
。
ステップ3:デモプロジェクトのセットアップ¶
JAR の依存関係を追加します。¶
Snowpipe Streaming SDK を含めるには、以下の依存関係を Maven 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 で利用可能な特定のバージョンに置き換えます。
プロファイルファイルの配置¶
profile.json
ファイル(ステップ2で構成)がプロジェクトのルート・ディレクトリにあることを確認してください。
ステップ4:提供されたJavaコード例を使用して、デモアプリケーションを実行します。¶
構築と実行¶
ターミナルでプロジェクトのルート・ディレクトリに移動します。
プロジェクトの構築:
mvn clean install
メインクラスの実行:
mvn exec:java -Dexec.mainClass="com.snowflake.snowpipestreaming.demo.Main"
ステップ5:データの検証¶
デモを実行した後、Snowflakeで取り込まれたデータを確認します:
SELECT COUNT(*) FROM MY_DATABASE.MY_SCHEMA.MY_TABLE;
SELECT * FROM MY_DATABASE.MY_SCHEMA.MY_TABLE LIMIT 10;