収集した構造化されたデータも非構造化されたデータも活用する前に、それらのデータを処理する必要があります。

データ処理の最も単純な例は、データの可視化です。例えば、ほとんどのCRMでは、データ分析レポートをグラフの形で出力することができます。しかし、そこに至るまでには、一連のデータ変換作業を経ることになります。

データ処理にはいくつかの種類があり、可用性、原子性、同時実行性などの点で異なります。

Table of Contents

データ処理方法はなぜ重要か?

1. トランザクション処理

2. 分散処理

3. リアルタイム処理

4. バッチ処理

5. マルチプロセッシング

データ処理のためのデータ準備

データ処理方法はなぜ重要か?

選択したデータ処理の方法によって、クエリに対する応答時間や出力の信頼性が決まります。したがって、方法は慎重に選択する必要があります。例えば、証券取引所のポータルのような可用性が重要な状況では、トランザクション処理が好ましい方法となるでしょう。

ここで注意したいのは、データ処理とデータ処理システムの違いです。データ処理とは、データを有用な情報に変換するためのルールのことである。データ処理システムとは、ある種のデータ処理に最適化されたアプリケーションのことです。例えば、タイムシェアリングシステム(複数のユーザで環境をシェアして利用するシステム)は、タイムシェアリング処理を最適に実行するように設計されています。バッチ処理を実行することもできます。しかし、そのジョブに対してはあまりスケールしないでしょう。その意味では、ニーズに合ったデータ処理の種類を選ぶという話になると、「システムを選ぶ」ということになります。データ処理の一般的なタイプとその用途は以下の通りです。

1. トランザクション処理

トランザクション処理は、ミッションクリティカルな状況で利用されます。これは、業務に支障をきたした場合に、業務に悪影響を及ぼす状況です。例えば、前述したような証券取引所のトランザクション処理などです。トランザクション処理では、可用性が最も重要な要素となります。可用性は、以下のような要素に影響されます。

  • ハードウェア: トランザクション処理システムは、ハードウェアを冗長化する必要があります。ハードウェアの冗長性により、部分的な障害が発生しても、冗長化されたコンポーネントを自動で引き継ぎ、システムを稼働させ続けることができるからです。
  • ソフトウェア:トランザクション処理システムのソフトウェアは、障害から迅速に回復するように設計されている必要があります。一般的に、トランザクション処理システムは、これを実現するためにトランザクションの抽象化を使用します。簡単に言えば、障害が発生した場合、コミットされていないトランザクションは中止されます。これにより、システムを迅速に再起動することができます。

2. 分散処理

多くの場合、データセットは大きすぎて1台のマシンには収まりません。分散データ処理は、これらの大規模なデータセットを分解し、複数のマシンやサーバーに分散して保存します。これは、Hadoop分散ファイルシステム(HDFS)上で動作します。分散データ処理システムは、高い耐障害性を持っています。ネットワーク内の1台のサーバーに障害が発生した場合、データ処理タスクを他の利用可能なサーバーに再割り当てすることができます。

また、分散処理はコストを大幅に削減することができます。企業はもう高価なメインフレームコンピュータを構築したり、維持管理やメンテナンスに投資したりする必要はありません。

ストリーム処理とバッチ処理は、分散処理の一般的な例です。

Integrate Your Data Today!

Try Xplenty free for 7 days. No credit card required.

3. リアルタイム処理

リアルタイム処理はトランザクション処理と似ており、リアルタイムでの出力が期待される場面で使用されます。しかし、データの損失をどのように処理するかという点で、両者は異なります。リアルタイム処理は、受信データを可能な限り迅速にコンピュートします。受信データにエラーが発生した場合、エラーを無視して次のデータ処理に移ります。GPS追跡アプリケーションは、リアルタイムデータ処理の最も一般的な例です。

これをトランザクション処理と比べてみましょう。システム障害などのエラーが発生した場合、トランザクション処理は進行中の処理を中止し、再初期化します。近似的な答えで十分な場合には、トランザクション処理よりもリアルタイム処理の方が好まれます。

データ分析の世界では、ストリーム処理はリアルタイムデータ処理の一般的なアプリケーションです。Apache Stormによって最初に普及したストリーム処理は、入ってくるデータを解析します。IoTセンサーからのデータや、消費者の活動をリアルタイムでトラッキングすることをイメージしてみてください。 Google BigQuerySnowflakeは、リアルタイム処理を採用したクラウドデータプラットフォームの例です。

4. バッチ処理

バッチ処理とは、その名の通り、一定期間保存されたデータの塊をまとめて、またはバッチで処理することです。バッチ処理は、詳細なインサイトを得るために大量のデータを分析する必要がある場合に必要とされます。例えば、ある企業の一定期間の売上高は、通常、バッチ処理で処理されます。大量のデータが含まれているため、処理に時間がかかります。データをバッチ処理することで、コンピューティングリソースを節約することができます。

バッチ処理は、スピードよりも正確さが重要な場面において、リアルタイム処理よりも好ましい処理方法です。さらに、バッチ処理の効率はスループットの観点からも評価されています。スループットとは、単位時間あたりに処理されるデータ量のことです。

5. マルチプロセッシング

マルチプロセッシングとは、同じデータセットに対して2つ以上のプロセッサが作業を行うデータ処理方法のことです。分散処理と全く同じように聞こえるかもしれませんが、違いがあります。マルチプロセッシングでは、異なるプロセッサが同じシステム内に存在します。したがって、それらは同じ地理的な場所に存在します。コンポーネントの故障があると、システムの速度が低下する可能性があります。

一方、分散処理では、互いに独立したサーバーを使用し、地理的に異なる場所に存在することができます。今日では、ほとんどすべてのシステムにデータを並列処理する機能が搭載されているため、ほとんどすべてのデータ処理システムでマルチプロセッシングが可能です。

しかし、ここでいうマルチプロセッシングは、オンプレミスのデータ処理システムを持つことを意味しています。一般的に、非常にセンシティブな情報を扱う企業は、分散処理とは対照的に、オンプレミスのデータ処理を選択するかもしれません。例えば、製薬会社や石油・ガス採掘産業で働く企業などです。

この種のデータ処理の最も明白な欠点はコストです。社内にサーバーを構築して維持するのは非常にコストがかかります。 

Integrate Your Data Today!

Try Xplenty free for 14 days. No credit card required.

データ処理のためのデータ準備

データを処理して分析する前に、アルゴリズムによって読み込めるように準備する必要があります。生データが、処理のためデータウェアハウスに到達するのに、ETL(抽出、変換、ロード)を介する必要があります。Xplentyは、分析のためにデータを準備するタスクをシンプルにします。このクラウドプラットフォームを使えば、数分以内にETLデータパイプラインを構築することができます。シンプルなグラフィカルインターフェースは、複雑なコードを書く必要がありません。100以上の一般的なデータウェアハウスやSaaSアプリケーションとの統合をすぐにサポートしています。また、APIを使用して迅速なカスタマイズと柔軟性を実現することができます。

Xplentyを使えば、データを処理する時間が減るので、データ分析のための時間を増やすことができます。オンラインデモを予約して、ローコードプラットフォームを体験してみてください。