今日では、アプリケーション、SaaS、ソリューション、ソーシャルチャネル、モバイルデバイス、IoTデバイスなどさまざまなソースからデータが企業に流れ込んでいます。ビッグデータによる変革は、データの量、速度、種類を驚異的に増大させました。 アナリティクスチームとデータサイエンスチームが簡単にデータにアクセスできる組織では、データドリブンなより良い意思決定により、これらすべてのデータの価値を高めることができます。このようなデータの増加に対応し、データをアクセス可能にするためには、データ取り込みのモダンフレームワークが必要です。このトピックになじみのない方は、データ取り込みの種類やデータ取り込みとデータ統合の関連について、ぜひ本稿をお読みください。
データ取り込みフレームワークとは
データ取り込みフレームワークとは、データをさまざまなソースからストレージリポジトリやデータ処理ツールに移動させるプロセスです。各種のモデルやアーキテクチャに基づいてフレームワークを設計するには複数の方法がありますが、データ取り込みはバッチとストリーミングという2種類の方法のいずれかで実施されます。どちらの方法でデータ取り込みを行うかは、データソースと、分析用にどれくらい早くデータが必要かによって決まります。
バッチ方式のデータ取り込み
バッチ方式のデータ取り込みフレームワークは、ビッグデータの台頭以前に、取り込まれたすべてのデータに対して使用されていた手法であり、今も広く使用されています。バッチ処理ではデータをグループ化し、データプラットフォームまたはツールにバッチ単位で定期的に移動します。バッチ処理は使用するコンピューティングリソースが少ないため、通常はコストを低く抑えられますが、扱うデータが大量になると処理速度が遅くなります。リアルタイムまたは準リアルタイムのデータアクセスが必要な場合、データ取り込みに最適なのはストリーミングプロセスを使用する方法です。
ストリーミング方式のデータ取り込み
ストリーミング方式のデータ取り込みでは、データが作成される(またはシステムによって特定される)のと同時にデータを継続的にデータプラットフォームに移動します。これは、高い精度で迅速に問題を解決するために最新のデータを必要とするビジネスインテリジェンスにとって理想的な方法です。
バッチ処理とストリーミングの区別は、状況によってはあいまいです。ストリーミングを名乗るツールでも、実際はバッチ処理を使用している場合があります。小さなデータグループを使用して短い間隔でデータを取り込むため、プロセスが驚異的な速さで処理されます。このアプローチはマイクロバッチと呼ばれることもあります。
データ取り込みとデータ統合の比較
データ統合はデータ取り込みフレームワークと関連するものの、データ取り込みと同じものではありません。データ統合には通常、データ取り込みが含まれますが、データにリポジトリや既存データとの互換性があることを確認するためのプロセスが追加で行われます。別の考え方として、データ取り込みはデータをリポジトリやツールに移動することに焦点を置いていますが、データ統合は複数のデータセットに対してさらに処理を行い、正確で信頼できる唯一の情報源として1つに統合します。
ETLとELT
データ統合には、抽出、変換、ロード(ETL)と、抽出、ロード、変換(ELT)という2つの方法があります。この2つの違いは、各プロセスでのイベントの順序にあります。
ETL:ELTではさまざまなソースからデータを収集し、変換(クレンジング、マージ、検証)し、データプラットフォームまたはツールにロードします。すべてのデータは、読み込み先に入る前に変換されます。
ELT:コンピュートとストレージのテクノロジーが発展し、変換プロセスのスピードと柔軟性が高まった結果、ELTが生まれました。ELTでは、生データをデータベースまたはデータプラットフォームにロードできます。その後、ユーザーが分析を実施する準備が整うと、変換プロセスがアドホックで行われます。このアプローチにより、組織は大量のデータセットを効率的に多種多様なソースから収集して、日常の意思決定に使用できます。
使用する統合プロセスを決める方法
データ取り込みとデータ統合に対する包括的なアプローチでは、データをデータプラットフォームに移動する方法だけでなく、統合・分析する方法も考慮します。ETLは一部のユースケースには適していますが、ELTを使用すると、必要なときにすべてのデータが確実に揃います。ELTをサポートする強力なプラットフォームがあれば、必要なパフォーマンス、スケーラビリティ、同時実行性をすべて備えたデータを、データが存在する場所で変換できます。
最適化されたモダンデータ統合
一部のデータウェアハウスとデータプラットフォーム(Snowflakeを含む)には、データ取り込みの専用ツールが設計されています。こうした機能は取り込みと統合をレベルアップさせ、プロセスを合理化し、リソース使用率を最適化します。
SNOWFLAKEによるさらに優れたデータ取り込みフレームワークの構築
データをSnowflakeにロードするには、いくつかの方法とベストプラクティスがあります。
バッチ方式でのデータローディングの場合、COPY INTOコマンドを使用してデータを一括ロードします。継続的なデータパイプラインの場合、Snowflakeの自動取り込み機能であるSnowpipeを使用します。BLOBストア通知でパイプをセットアップするだけで、進行中の取り込みの管理はSnowflakeに任せることができます。Snowpipeインフラストラクチャは、新規通知の処理とデータの取り込みを継続的に行います。
Snowflakeはデータ取り込みを簡素化して、データの転送時によく発生する問題を解決します。Snowflakeの機能により、組織は次のことが可能になります。
COPY INTOを使用してデータを未加工のまま簡単にバッチロードする
Snowpipeでデータを継続的にロードし、自動取り込みを行う
Snowflake Kafkaコネクタにより、ストリーミングソースの操作と接続を簡素化する
構造化データと半構造化データ(JSON、XMLなど)をシームレスに統合する
データ取り込みを自動化してスピードアップし、さらに迅速なビジネスアナリティクスを提供する
変更データキャプチャを実施する
データ需要に合わせてコンピュートリソースを簡単にスケールアップまたはスケールダウンし、予定外の大量データロードにも対応する
QontoのシニアデータサイエンティストでSnowflakeのお客様でもあるAmaury Dumoulin氏は、データ取り込みにSnowpipeを使用するメリットについて次のように語っています。「私たちのチームが特に気に入っているのは、Snowpipeは一度導入すればメンテナンスも管理も不要で、手間がかからないことです。全体的にパフォーマンスが向上し、コストも削減できています」
SNOWFLAKEデータクラウドの試用
SnowflakeプラットフォームはETLとELTの両プロセスをサポートし、お客様のユースケースに必要な柔軟性を備えています。SnowflakeのSnowpipeツールにより、リアルタイムデータを迅速かつ効率的に処理できます。Snowflake無料トライアルを開始して、次のことをお試しください。
SnowflakeのUIとサンプルデータセットを使用してみる
完全なJSONサポートで半構造化データを処理する
予期しないワークロードと固有の同時実行性ニーズに対処するため、コンピュートリソースを瞬時にスケールアップまたはスケールダウンする
データパイプラインをセットアップして試験運転し、主要なBIツールに接続する
プログラムによるアクセスを実験する