チュートリアル: Snowpipe Streaming高性能アーキテクチャ SDK の利用を開始する¶
このチュートリアルでは、新しいハイパフォーマンスアーキテクチャを利用したデモアプリケーションのセットアップと実行について、 snowpipe-streaming SDK で手順を説明します。
前提条件¶
デモを実行する前に、以下の前提条件を満たしていることを確認してください。
Snowflakeアカウント:Snowflakeアカウントにアクセスできることを確認します。ステップ1:Snowflakeオブジェクトの構成 に詳述されている専用ユーザーとカスタムロールを作成するには、十分な権限(例えば、初期セットアップには ACCOUNTADMIN または USERADMIN)を持つユーザーが必要です。
ネットワークアクセス:ネットワークが、Snowflake、Amazon S3、またはGoogle Cloud Platform(GCS)あるいはAzure Blob Storageへのアウトバウンド接続を許可していることを確認してください。SDK はSnowflakeおよびクラウドストレージプロバイダーに対して RESTAPI 呼び出しを行うため、必要に応じてファイアウォールルールを調整します。
ネットワーク接続を確認するには、次のコマンドを使用します。
Java開発環境Java 11以降と、依存関係管理のためのMavenをインストールします。
Python:Pythonバージョン3.9以降をインストールします。
システム要件:SDK はglibcバージョン2.26以降が必要です。次を使用して、現在のglibcバージョンを確認できます。
Snowpipe Streaming SDKs およびサンプルコード:
AWS の場合:`Java SDK<https://central.sonatype.com/artifact/com.snowflake/snowpipe-streaming>`_ または `Python SDK<https://pypi.org/project/snowpipe-streaming/>`_(任意のバージョン)を取得します。
Azure の場合: SDK バージョン1.1.0以降が必要です。
GCP の場合: SDK バージョン1.1.0以降が必要です。
`GitHub レポジトリ<https://github.com/snowflakedb/snowpipe-streaming-sdk-examples> のSnowpipe Streaming SDK の例`_ から、希望する言語のサンプルコードをダウンロードします。
始めましょう¶
このセクションでは、デモアプリケーションのセットアップと実行に必要な手順の概要を説明します。
ステップ1:Snowflakeオブジェクトの構成¶
snowpipe-streaming`SDK を使用する前に、Snowflake環境内にターゲットテーブルを作成する必要があります。従来のアーキテクチャとは異なり、高性能アーキテクチャには データインジェスチョン用の PIPE オブジェクトが必要です。このチュートリアルでは、ターゲットテーブルのインジェスト時に自動的に作成されるデフォルトのパイプを使用します。進行中の変換や取り込み時のクラスタリングなど、追加機能が必要な場合は、 :doc:`CREATEPIPE</sql-reference/sql/create-pipe> をご参照ください。
認証用キーペアの生成¶
OpenSSL を使って認証用の秘密キーと公開キーのキーペアを生成します。詳細については、 キーペア認証とキーペアローテーション をご参照ください。
ターミナルで以下のコマンドを実行し、キーを生成します。
データベース、スキーマ、テーブル、およびユーザー認証の構成¶
Snowflakeアカウントで以下の SQL コマンドを実行します(たとえば、Snowsightまたは Snowflake CLI を使用)最初の数行では ACCOUNTADMIN や USERADMIN などのユーザー、ロール、データベースを作成する権限を持つロールが必要です。その後、新しいロールに切り替えます。MY_USER、 MY_ROLE、 MY_DATABASE などのプレースホルダーを、必要な名前に置換します。
注釈
サンプルテーブルの data 列は VARIANT 型です。高性能 SDK は、この列のデータをネイティブオブジェクト(例: Java マップ またはPythonディクショナリ)として渡す必要があります。生の JSON 文字列を渡すと、データが文字列リテラルとして保存されます。
ステップ2:認証プロファイルの構成¶
デモアプリケーションでは、認証の詳細を含む接続設定を保存するために profile.json ファイルが必要です。SDK は、キーペア認証を使用して安全な接続を行います。
プロファイル構成ファイルの作成¶
デモプロジェクトのルートディレクトリで profile.json ファイルを作成または更新します。
profile.jsonテンプレート¶
プレースホルダーを置き換えます。
MY_USER:ステップ1:Snowflakeオブジェクトの構成 で構成されたSnowflakeのユーザー名。your_account_identifier:Snowflake アカウント識別子(例:xy12345)。rsa_key.p8:ステップ1:Snowflakeオブジェクトの構成 で生成したプライベートキーファイル。MY_ROLE: ステップ1:Snowflakeオブジェクトの構成 で独自に作成してユーザーに付与した専用ロール(MY_ROLE)。
ステップ3:デモプロジェクトのセットアップ¶
ダウンロード: サンプルJavaコード
JAR 依存関係の追加
Snowpipe Streaming SDKを含めるには、Maven :code:`pom.xml`に以下の依存関係を追加します。Maven はパブリックリポジトリから JAR を自動的にダウンロードします。
重要
YOUR_SDK_VERSION を Maven Central で利用できる特定のバージョンに置き換えます。
ダウンロード: サンプルPythonコード
** Python依存関係の追加**
SDK にはPythonバージョン3.9以降が必要です。
Python の Snowpipe Streaming SDK をインストールするには、次のコマンドを実行します。
このパッケージの詳細については、`PyPI<https://pypi.org/project/snowpipe-streaming/>`_ をご参照ください。
プロファイルファイルの配置¶
ステップ2:認証プロファイルの構成 で構成した profile.json ファイルが、プロジェクトのルートディレクトリにあることを確認してください。
ステップ4:提供されたコード例を使用した、デモアプリケーションの実行¶
ターミナルで、プロジェクトのルートディレクトリにナビゲートします。
ビルドと実行
プロジェクトの構築:
メインクラスを実行します。
デモアプリケーションの実行
Pythonデモを実行します。
ステップ5:データの検証¶
デモを実行した後、Snowflakeで取り込まれたデータを確認します:
データが文字列リテラルではなく、構造化オブジェクトとして取り込まれたことを確認します。
data_typeがOBJECTを返した場合は、正しく取り込まれています。data_typeがVARCHARを返した場合は、アプリケーションが解析されていない文字列リテラルを渡しています。