注:本記事は(2021年7月15日)に公開された(Data Engineering Use Cases with Snowpark and Java UDFs)を翻訳して公開したものです。

データエンジニアリングの複雑さ

データエンジニアリングは、データ管理にとって重要な要素でが、次の2つの要素により物事が複雑になっています。1つ目は、複数のシステムやソリューションを合わせて使用するケースが多いため、データパイプラインのアーキテクチャが融通の利かない、過度に複雑なものになりがちです。その主な要因の1つとして、データエンジニアリングが複数のチームの共同作業であることが挙げられます。データアナリストはSQLやGUIベースのツールを使用することを好む一方で、データサイエンティストはノートブックやPythonを使用してデータを準備することを好み、技術に詳しいデータエンジニアや開発者は複雑なコードやプログラミング構造に取り組む必要があるかもしれません。これを機能させるには、これらすべての異種システムや複雑なデータパイプライン、アーキテクチャ全体をデータが行き来する必要がありますが、それによってセキュリティやガバナンスがリスクにさらされる場合もあります。

2つ目は、データ処理インフラストラクチャーを使用した管理や作業は、昔から多くの手作業やメンテナンス経費が必要であるという点です。結果として、データエンジニアの作業量が膨大となり、ほとんどの時間をパイプラインのメンテナンスや修理に費やすことになります。

SnowparkとJava UDF

Snowflakeによるデータクラウドへの道のりは、信頼性、安全性、性能、および拡張性が高いデータ処理システムをクラウドで一から作り上げ、マネージドサービスとして提供することで、インフラストラクチャーの複雑さを肩代わりするという、これまでとは全く異なるデータウェアハウスを構築するところから始まりました。これは、特にSQLユーザーにとって、新時代のデータエンジニアリングとはどのようなものかを定義づけるものとなりました。現在パブリックプレビュー版で提供中のSnowparkとJava UDF(ユーザー定義関数)により、非SQLユーザーにもデータプログラマビリティと拡張性を備えたデータクラウドの門戸が広がったことで、この両者が同じ性能、拡張性、使い易さをシームレスに単一のプラットフォームで享受できるようになりました。

6月に開催されたSnowflake Summitで紹介されたSnowparkは、DataFrame型のプログラミングを、ScalaやJava関数を始めとする開発者が好む言語に深く統合させた新しい開発者エクスペリエンスであり開発者にとっては、Snowflakeの可能性がさらに広がることになります。SnowparkとJava UDFは、複雑なデータパイプラインを簡単に構築できるよう設計されており、開発者はデータを移動させることなく直接Snowflakeとやり取りできます。

Snowparkを通じてパートナーと共にデータエンジニアリングを加速する

Snowflake Summitでは、デモや使用事例のほか、当社の広範なエコシステムを形成するパートナーからの興奮の声を共有しました。それでは、Snowpark Acceleratedプログラムのパートナーを通じて取り組むことができる複雑なデータエンジニアリング使用事例をいくつか詳しく見ていきましょう。

Talendを使用して信頼性の高いデータを提供する

アナリティクス能力はデータの質によって決まります。多くの企業にとってデータの質は一番の問題点であり続けてきました。しかしTalend Data Trust Score™を使用すれば、Snowflake内でデータの健全性チェックを実行できます。Talendのデモでお分かりのとおり、テーブルのフルスキャンが実行され、セマンティック分析が返され、次にTalend Data Trust Score(データ信頼性スコア)が計算されます。これまでは通常、すべてのデータを抽出して別のシステムで分析を実行する必要がありました。これは特にデータが大量にある場合は難しいことであり、セキュリティリスクが生じるだけでなく、処理アプリケーションのリソースが不足すれば分析ジョブ自体が失敗する恐れもあります。SnowparkとJava UDFの場合、Snowflake内で処理を直接実行できるので、こうした問題を回避できます。この場合、TalendのセマンティックアナライザーがJava UDFとしてSnowflakeにプッシュされ、次にSnowparkがクエリを実行し、プロセス全体を調整します。

TalendがSnowparkとJava UDFを使用してデータの健全性と品質を評価

StreamSets engine for Snowparkを使用して、DataOpsを最適化する(プレビュー版)

StreamSets engine for Snowparkは、Snowparkを基礎に構築するツールで、データクラウドオペレーションのシンプルさだけでなく、Snowparkの多言語サポートの表現力や柔軟性も得られます。この新しいツールを使用することで、データエンジニアはSQL以外の言語を使用しながら、StreamSets DataOps Platformで強力なデータパイプラインを構築できます。直感的なグラフィカルインターフェイスを通じてScalaやJavaを使用しながら、ノーコードを選ぶこともできれば、必要な時にコードを投入することもできます。StreamSets engine for Snowparkは、複雑なデータパイプラインを大規模にモニタリングしオーケストレーションできる組込み機能など、StreamSets DataOps Platformのあらゆるメリットを、ハードウェアを追加する必要なしにクラウドで提供します。

StreamSetsのエンドツーエンドなデータ取り込みとSnowflake向けELT

強力なデータ統合機能およびRiveryとの自動オーケストレーション

Snowparkの拡張されたプログラミング機能により、Riveryの顧客はデータの新しい次元を切り開くことができるようになりました。今では、顧客はRivery内から直接Snowflake上でSQL、Scalaコード、およびJava UDFをすべて同時に実行できます。さらに、RiveryのSnowpark統合は、データワークフローを一元化し、余分なデータシステムを排除することで、データオペレーションをシンプル化します。Riveryの顧客は、自動化されたデータワークフローにSnowparkの機能を組み込むこともできます。RiveryのLogic Riversエンジンは、データの取り込みとデータの変換を単一の自動ワークフローに結合します。Logic Riversはあらゆるデータソースからデータを取り込み、SQL、Scala、またはJava UDFを通じて変換を実行してから、リバースETLを含む他のロジックステップを、事前設定された自動フロー内で開始できるようになりました。Logic Riversは、Snowparkの力により、完全に自動化されたデータオーケストレーションを提供します。

統合の詳細については、センチメント分析のデモを紹介しているこちらのRiveryブログをご覧ください。

Snowpark Acceleratedプログラムには、データエンジニアリング、データサイエンス、およびガバナンスといった分野から50を超えるパートナーが参加しています。MatillionInformaticaDataOps.LiveなどのSnowflakeパートナー各社が、Snowparkとのエキサイティングな統合ソリューションを提供しています。各社の事例の詳細については、こちらをご覧ください。

データプログラマビリティの未来

SnowparkとJava UDFは現在、パブリックプレビュー版として提供されていますが、データプログラマビリティへの道のりは始まったばかりです。サミットのセッションWhat’s New: Extensibility in Snowflake(新情報:Snowflakeの拡張性)でお伝えしたとおり、Snowflakeでの開発者エクスペリエンスを最適化するため、さらなる機能改善に取り組んでいるところです。試してみたい方は、こちらのラボガイドの手順を参照してください。お試しになった後は、Snowparkディスカッショングループに参加して、どのような用途に使用したかをぜひシェアしてください。