アプリケーションと拡張機能の開発

Snowflakeを拡張し、クライアントとして機能する、または統合コンポーネントとして機能するアプリケーションを作成できます。

Snowpark API を使用したデータのクエリと処理

Java、Python、またはScalaでSnowpark APIs を使用すると、アプリケーションコードが実行されるシステムにデータを移動することなく、Snowflakeでデータを処理するアプリケーションをビルドできます。

Snowparkにより次を実行できます。

  • Java、Python、またはScalaとして定義されたアプリ、パイプライン、および処理ロジックを作成する。

  • サポートされている言語でネイティブに統合されたライブラリを使用して、データステートメントをビルドする。

  • データを処理するときに、Snowflakeとの間でデータを転送するオーバーヘッドを削減する。

  • Java、Python、または Scalaを記述して、ユーザー定義関数を作成する。Snowflakeは必要な SQL コードをバックグラウンドで生成します。

Snowparkの概要 については、 Snowpark API をご参照ください。

開発者ガイド

ガイド

説明

JavaでSnowparkコードを記述するためのガイドとリファレンス。

PythonでSnowparkコードを記述するためのガイドとリファレンス。

ScalaでSnowparkコードを記述するためのガイドとリファレンス。

関数とプロシージャからのメッセージのログ

イベントテーブルに格納されたログメッセージを記録するコードを記述するためのガイド。

関数とプロシージャのイベントをトレースする

イベントテーブルに格納されたトレースデータを記録するコードを記述するためのガイド。

クイックスタート

次のクイックスタートチュートリアルを使用して、Snowparkの実践的な概要を知ることができます。

Snowpark ML

Snowpark ML は、前処理、モデリング、モデル管理、データインジェスチョンを含む、Snowflakeにおける機械学習とデータサイエンスのためのPythonライブラリです。Snowpark Pythonと連携し、トレーニングデータとテストデータにSnowpark DataFrames を使用できます。

プロシージャ、ユーザー定義関数、および外部関数によるSnowflakeの拡張

プロシージャ、ユーザー定義関数、および外部関数の記述により、Snowflakeを強化および拡張できます。

  • プロシージャを使用すると、コードまたは SQL ステートメントを実行して、スケジュールされた操作またはオンデマンド操作を実行できます。サポートされているプログラミング言語のいずれかでロジックを記述します。

  • ユーザー定義関数(UDF)を使用すると、ロジックを実行し、データを計算して返すことができます。UDFs は、バッチ処理とカスタムロジックの SQL への統合に役立ちます。サポートされているプログラミング言語のいずれかでロジックを記述します。

  • 外部関数を使用すると、SnowflakeとSnowflakeの外部で実行されるカスタムコードとの統合を設定し、ユーザー定義関数と同じようにカスタムコードを使用できます。

これら2つのオプションの選択に関する詳細については、 ストアドプロシージャとユーザー定義関数のどちらを記述するかの選択 をご参照ください。

開発者ガイド

ガイド

説明

ストアドプロシージャの概要

ストアドプロシージャの記述ガイド、サポートされている言語でハンドラーを記述する方法。

ユーザー定義関数の概要

サポートされている言語でハンドラーを記述する方法を含む、 UDFs を記述するためのガイド。

関数およびプロシージャの設計ガイドラインおよび制約

セキュリティ、規則などに関する一般的なガイドライン。

ハンドラーコードのパッケージ化

ステージ上で保持するハンドラーコードのビルドに関する情報。

外部ネットワークアクセスの概要

UDF とプロシージャハンドラーを使って外部ネットワークエンドポイントにアクセスするためのガイド。

外部関数の記述

他のシステムでコードを呼び出すことができる外部関数を記述するためのガイド。

関数とプロシージャからのメッセージのログ

イベントテーブルに格納されたログメッセージを記録するコードを記述するためのガイド。

関数とプロシージャのイベントをトレースする

イベントテーブルに格納されたトレースデータを記録するコードを記述するためのガイド。

ドライバーおよび APIs を使用したクライアントアプリをビルドする

Snowflake操作をクライアントアプリに統合できます。Snowpark API に加えて、言語およびプラットフォーム固有のドライバーも使用できます。

ドライバー

ドライバーを使用すると、コードまたはアプリからSnowflakeに接続できます。C#、Go、Pythonなどの言語を使用して、Snowflakeで操作を実行するアプリケーションを記述できます。Snowflakeへのアクセスに使用できる各ドライバーの具体的な情報については、次のセクションをご参照ください。

RESTful API

Snowflake RESTful SQL API を使用すると、 HTTPS と REST を介してデータにアクセスし、データを更新することができます。たとえば、 SQL ステートメントの送信、ストアドプロシージャの作成と実行、ユーザーのプロビジョニングなどを実行できます。

SQL REST API で、 POST リクエストの本文で実行する SQL ステートメントを送信します。次に、実行ステータスを確認し、 GET リクエストで結果をフェッチします。

SQL REST API 開発者ガイドについては、 Snowflake SQL REST API をご参照ください。

Snowflake Python API

Snowflake Python API は統一されたPython API で、 SQL コマンドを使用せずにSnowflakeのワークロード全体でSnowflakeリソースを管理するために使用できます。

たとえば、このPython API を使用して、Snowflakeのタスク、データベース、テーブル、仮想ウェアハウスを作成および管理できます。

Snowflake Python API 開発者ガイドについては、 Snowflake Python API: PythonによるSnowflakeオブジェクトの管理 をご参照ください。

他のシステムと統合する

Snowflakeには、Snowflakeの外部にあるシステムと統合するための APIs を含むコネクタが含まれています。詳細については、以下の開発者ガイドをご参照ください。

開発者ガイド

コネクタ

説明

Kafka用のSnowflakeコネクタ。

Apache Kafka は、イベントストリーミングプラットフォームです。このコネクタは、インジェスチョンのためにイベントをKafkaからSnowflakeに送信できます。

Spark用Snowflakeコネクター

Apache Sparkは、大規模なデータ処理用の分析エンジンです。SparkコネクタをSparkワークロードに統合して、Snowflakeでより多くのデータ処理を直接実行し、データ転送を削減してパフォーマンスを大幅に向上させることができます。

Snowflake を他の多くのシステムと統合して、データの交換、機械学習による分析の実行、セキュリティの強化なども実行できます。これらのシステムとSnowflakeの統合の詳細については、 Snowflakeエコシステム をご参照ください。

サポートされている言語

Snowflakeは、アプリと拡張機能をビルドするために複数の言語をサポートしています。次のテーブルに、Snowflakeでの開発でサポートされている言語と、それぞれでビルドできることを示します。

言語

Snowflake機能

Java

できること:

JavaScript

できること:

PHP

できること:

Python

できること:

Scala

できること:

Snowflakeスクリプト

できること:

  • プロシージャ など、 SQL 内で手続き型コンストラクトを使用します。

SQL

できること: