データの迷路をナビゲートする：ツール選択の指針となる5つの重要な質問

<font color="Grey">*[Navigating the data maze: 5 essential questions to guide your tool selection](https://aiven.io/blog/data-tool-selection)の翻訳です。*</font>

2024年3月5日

#データの迷路をナビゲートするツール選択の指針となる5つの重要な質問

複雑なデータの取り扱いを技術ニーズに合わせて解明する


今日は、複雑なデータの世界を冒険する。経験豊富なCTOであろうと、技術全般の初心者であろうと、データのニュアンスを理解することは、情報に基づいた意思決定を行う上で非常に重要です。この複雑なデータの網を解きほぐし、適切な質問を投げかけながら、データの旅に最適なツールを見つけていきましょう。


## あなたのデータはどのような形をしていますか？


同じデータセットは二つとない。データの構造によって、そのデータを操作するのに必要なツールの種類も変わる


### 構造化か非構造化か？


一方には、顧客プロファイルのような高度に構造化されたデータがある。一方には、顧客プロファイルのような高度に構造化されたデータがあります。各顧客は、既知の名前、住所、電話番号を持っており、私たちは、それらが特定のフォーマット制約の範囲内に収まることを期待できます。例えば、電話番号は常に数字と特殊文字のセットです。一方、非構造化データもあります。例えば、電子メールの内容は非構造化データです。


データの形状によって、それを保存し操作するためにどのようなソフトウェアを使うかが決まるはずだ。


* 構造化データ： **構造化データとは、予測可能なデータ型で予測可能なフィールドを持つデータのことです。顧客は名前、電話番号、メールアドレスを持っています。顧客は名前と電話番号と電子メールアドレスを持っています。名前は文字列で、電話番号は数字で、電子メールアドレスは特定の形式に従っていることがわかっています。これらの個々のデータに単独でアクセスする必要があるかもしれませんし、表示を生成するために名前-電話番号-メールアドレスのセットを呼び出す必要があるかもしれません。
	+ リレーショナル（SQL）データベースは、列と行にデータを格納するため、構造化データに適しています。リレーショナル（SQL）データベースは、データを列と行で格納するため、構造化データに適している。MySQLやPostgreSQL®のようなツールは、構造化データの格納とクエリに効率的に機能する。
* 半構造化データ：** 半構造化データとは、タグや識別子のような構造を持つが、厳密な表形式で保存されないか、できないデータのことである。例えば、Googleドキュメント上のコメントは半構造化データである。データには、既知で一貫性のある部分（例えば、コメント作成者の名前とEメール）と、自由形式の部分（コメントそのもの）がある。前述したように、できるだけ構造化された形式でデータを保存するのがベストです。JSONやXMLのようなデータ形式をサポートする表形式のデータベースを探しましょう。
	+ 構造化された要素を含むが、従来のデータベースよりも柔軟性が高い。その他の選択肢としては、JSONを広範にサポートしているMongoDBやPostgreSQLがある。
* 非構造化データ：**これは、各インスタンスで一意であるが、識別可能で一貫性のある内部フィールドをほとんど持たないデータである。電子メールは非構造化データの好例です。Eメールには送信者と受信者がいることは確認できますが、添付ファイルがあるかどうか、CCやBCCの行に誰かが含まれているかどうか、本文にどのようなテキストが含まれているか（含まれている場合）などは予測できません。
	+ CassandraやRedisのようなNoSQLデータベース、ドキュメントストア、データレイクは、非構造化データを効果的に扱うことができる。


### 操作の必要性


次に考えるべきことは、データをどのように利用するかである。長期保存のためにデータを収集するのか、それともある場所から別の場所へデータを移動させ、分析し、文脈に沿って利用するのか。データ・システムの世界では、このデータは静的、動的、あるいはその両方のハイブリッドであると考える。


すべてのデータサービスがストレージだけを指向しているわけではない。ストリーミング・メッセージング・サービス、オンザフライのデータ分析、大規模な分析データの集約のためのストレージは、すべて有効なユースケースである。


* 静的データ:** 頻繁に更新を必要とせず、安定性を維持できるデータ。
	+ MySQLやPostgreSQLのようなリレーショナル・データベースは、データの整合性と安定性を長期にわたって維持できるため、静的データに適しています。ClickHouseは、大量のデータに対する分析ワークロードをサポートするため、台頭してきている。
* 動的データ：リアルタイムで頻繁に更新される、常に進化し続けるデータ。株価や、サーモスタットが寒くなると自動的に変化するようなセンサー・データを考えてみてください。
	+ リアルタイム・データ・ストリーミングのためのApache Kafka®や、高速データ・アクセスのためのRedis®*のようなインメモリ・データベースのような技術は、ダイナミック・データに適している。
* ハイブリッド・データ：毎月の販売記録や四半期ごとのパフォーマンス・データのように、時々変化するデータ。この場合、動的な更新を扱うツールと静的な情報を維持するツールのバランスがとれていれば助かる。
	+ ハイブリッド・データ・シナリオは、様々な技術の組み合わせが有効です。PostgreSQLのような伝統的なデータベースとKafkaのようなデータ・ストリーミング・プラットフォームを組み合わせて、ハイブリッド・データのニーズに対応することができる。


## どのようにデータを利用し、アクセスするのか？


さて、データの構造と使い方を検討したところで、誰がどのようにデータにアクセスするのだろうか。データへのアクセスを必要とするスピードと頻度によって、実行可能なツールが決まります。このセクションでは、定期的にアップデートを受け取る必要がある場合から、リアルタイムでアップデートが必要な場合まで、データへのさまざまなアクセス方法について説明します。


### データアクセスのパターン


* レポートのためにデータを引き出す（定期的なアクセス）。リクエストは不定期に行われ、レポートなどがコンパイルされるのを待つ必要がある。
	+ 詳細で複雑なクエリーを必要とするシナリオには、SQLデータベースが理想的です。PostgreSQLやMySQL（およびClickHouse）は、データの完全性と定期的なアクセスが一般的な環境に適しています。OpenSearchのような特殊なデータストアは、特定の検索パターン（テキスト検索を含む）に適している。  
	
	リアルタイム分析（継続的アクセス）：前述したように、ダイナミック・データでは、リアルタイムで頻繁に更新される、常に進化し続けるデータである。情報は継続的に流れる。
	+ ストリーミング技術の使用。Apache Kafka®やApache Flink®のようなプラットフォームは、高速でリアルタイムなデータ処理のチャンピオンだ。即時の洞察と継続的なデータフローを必要とするシナリオに最適です。
* ハイブリッド・アクセス:**定期的なレポートが必要だが、リアルタイムのアラートや更新も必要なシナリオのために、プルとストリームの手法を組み合わせたもの。
	+ ハイブリッド・データベース・システム：ハイブリッド・データベース・システム：SQLデータベースとNoSQLデータベースの両方の特徴を併せ持つシステムで、多様なデータ・アクセス・パターンや複雑なクエリに柔軟に対応できる。多様なデータ・ニーズを持つ組織にとって理想的なシステムだ。DynamoDB、Altibase、Microsoft SQL Serverなどが考えられる。


## セキュリティとプライバシーの要件は何ですか？


セキュリティとプライバシーの要件を考えるとき、あなたの業界とデータは何を必要としていますか？データのコンプライアンスと安全性のニーズを理解することで、どのようなツールがそれらの要件を満たすことができるかを導き出すことができます。


### 規制遵守のナビゲート


* ユーザー、ロール、アクセス・パターン、資産定義の厳密さなどを特定する必要があります。
	+ 最新のデータベースは、特定のユーザーが見ることができるもの、または見ることができないものを正確に定義することを可能にする「未加工レベルのセキュリティ」を実行する方法を提供します。
* EUのGDPR、米国のヘルスケアデータのHIPAA、クレジットカード取引のPCI DSSなどはその一例です。各規制は、個人データや機密データに対して特定の取り扱いと保護措置を要求しています。
	+ データ・プライバシー管理プラットフォーム。OneTrustやTrustArcのようなツールは、GDPRを含むプライバシー・コンプライアンスを管理するための包括的なソリューションを提供します。
* GDPR、HIPAA、PCI DSSとは別に、特定の業界には特定のデータ取り扱い規制があります。例えば、米国の教育データに関するFERPAなど。
	+ 医療データ管理システムと決済処理プラットフォーム。Epic Systems や Cerner Corporation のようなヘルスケアに特化したシステムは、医療機関が HIPAA 要件を満たすのに役立ちます。PCI DSSに準拠した決済ゲートウェイ（StripeやBraintreeなど）は、安全なクレジットカード決済に使用できます。


### データ漏洩を最小限に抑える


* 各ユーザーが必要なものだけにアクセスし、それ以上はアクセスできないようにするために、最小特権や役割ベースのアクセス制御のような原則を使用する。
	+ PostgreSQL、MySQL、Kafkaは、ユーザが何であるか、何ができるかを安全に指示する方法を提供するいくつかのオプションです。Klawのようなツールは、ユーザーとロールの定義を社内プロセスにマッチするように移植します。
* データのマスキングと暗号化:**機密情報を非表示にし、静止時と転送時に安全に保つ。
	+ データマスキングと暗号化ツール。Amazon RDS暗号化のようなデータベース暗号化ソリューションや、VeraCryptのようなファイルレベルの暗号化ツールを活用する。Aiven for PostgreSQLおよびAiven for Flinkは、データのマスキング、隠蔽、集約に使用できます。


## データ量はどれくらいで、その増加傾向は？


データ量とデータの拡大について考える場合、データの長期保存、データへのアクセスの速さ、データの長期的な拡大について考慮することが不可欠です。


### データ量の把握


* 小規模から大規模まで:** ローカルデータベースのギガバイトからクラウドベースの分散システムのペタバイトまで、この増加に対応するツールと戦略を選択することが不可欠である。
	+ PostgreSQLやKafkaのようなデータ・ツールは、スケーラビリティのためによく使われる。特に、Kafka Tiered Storageのような異なる階層のストレージへの移動が必要です。データはデータレイクや、Amazon S3、Google Cloud Storage、Azure Blob Storageのようなクラウドベースの分散システムに保存することもできる。これらのオプションのいずれかを使用することで、Clickhouseのようなツールでデータを照会できるようになる。Aivenのようなプラットフォームは、クラウドストレージのスケーリングを支援することができます。
* データの複雑さ：**** 容量に加えて、データの複雑さも考慮してください。複雑なデータであれば、たとえ量が多くても、より高度な処理ツールが必要になるかもしれません。
	+ Apache Flink、Apache Spark™、Apache Hadoop®のような高度なデータ処理ツールは、データ量に関係なく、複雑なデータ構造と分析を処理することができます。


### 将来の成長計画


* スケーラビリティ戦略:** 垂直的なスケーリング（既存システムの強化）であれ、水平的なスケーリ ング（複数システムへの拡張）であれ、アプローチは柔軟でスケーラブルであるべきであ る。
	+ 技術的なマッチングの可能性:** スケールアップに必要なソリューションには、複数のツールが必要であることがわかるかもしれません。垂直的なスケーリング（既存システムの拡張）の選択肢としてはPostgreSQL、水平的なスケーリング（複数システムへの拡張）の選択肢としてはCassandra、Kafka、Flink、Clickhouseなどが考えられます。
* サーバーレスと従来型の提供のバランスを評価する。必要な弾力性を提供するクラウド・ソリューションを探してください。垂直方向か水平方向のスケーリングか、サーバーレスか容易にスケーラブルなインスタンスか。
	+ AWS、Google Cloud、Azureのようなクラウド・ソリューションは、弾力性とスケーラビリティを提供する。さらに、Apache Cassandra®のようなNoSQLデータベースや、分散データを扱うためのAmazon DynamoDBのような分散データベースを検討する。進むべき道はさまざまだ。サーバーレスは、当初は安価かもしれないが、トラフィックでスケールするにつれて指数関数的にコストが高くなる。Aivenというツールも考えられる。Aivenプラットフォームは、請求額を抑制するスケーラブルな方法を提供してくれる。
* データ・ライフサイクル管理： **データが増大するにつれて、古いデータをアーカイブし、アクティブなデータセットを効率的かつ管理しやすく保つためのデータ・ライフサイクル管理戦略の導入を検討してください。
	+ PostgreSQLやMySQLのような運用データベースから、Clickhouseのような分析用データベースにデータを移行するデータライフサイクル管理戦略を導入することができます。


## 新興のトレンドやテクノロジーについていけていますか？


今こそ、データが時間とともにどのように変化していくのか、そして新たなトレンドにどのように対応していくのかを考える時だ。考慮すべき大きな要素は、データのインフラがどれだけ将来性を備えているかということです。新たなトレンドを意識することで、新しいツールがエンジニアリング・パワーやストレージのニーズ、コストの最適化に役立つかどうかを判断できるようになる。


### 最先端技術の探求


* リアルタイム処理:** Apache Kafka のような技術は、即時処理と配信機能を提供し、データの扱い方に革命をもたらしている。
	+ リアルタイムデータストリーミングと処理のための Apache Kafka と Apache Flink。迅速なデータ処理と配信が可能で、リアルタイム分析やイベント駆動型アプリケーションに最適です。
* ビッグデータとAIの統合:** AIと機械学習ツールは、データ分析と自動化に新たなフロンティアを開いています。
	+ Hadoop と Spark は、大規模なデータ分析と AI の統合に対応します。さらに、高度なAI機能のためにTensorFlowやPyTorchのような機械学習フレームワークを検討してください。PostgreSQLとpgvector、OpenSearch、ClickHouseなど、AI機能を追加する既存の技術にも注目してください。
* クラウド・コンピューティングの進歩： **サーバーレス・アーキテクチャやエッジ・コンピューティングなど、データ処理やストレージ戦略に大きな影響を与える最新のクラウド・コンピューティングに注目してください。
	+ サーバレスアーキテクチャ（例えば、AWS Lambda、Azure Functions）のようなクラウドコンピューティングの進歩を探求し、費用対効果が高くスケーラブルなコンピューティングを実現する。記事「Real-Time Sentiment Analysis Using Apache Kafka and SageMaker Jupyter Notebooks」は、プロセスを理解するための良い出発点になるだろう。


### 安定性と革新性のバランス


* ハイブリッド・アプローチ：重要なのは、従来のデータベースの信頼性と新しいテクノロジーの俊敏性を融合させることです。これにより、様々なデータシナリオに対応できる汎用性の高い堅牢なシステムが構築される。
	+ Aiven for PostgreSQLのようなハイブリッド・データベース・システムを導入し、従来のデータベースの信頼性と新しいテクノロジーの柔軟性を融合させる。コンテナのオーケストレーションにKubernetesを活用し、多用途で適応性の高いシステムを構築する。
**Staying informed and adaptable:** テクノロジーの状況は常に変化しています。新しい開発動向を常に把握し、既存のシステムに取り入れる準備をすることは、先を行くために非常に重要です。
	+ 業界特有の出版物、フォーラム、カンファレンスを通じて、新しいテクノロジーについて常に情報を得る。DevOpsのプラクティスと継続的インテグレーション/デプロイメント（CI/CD）パイプラインを採用し、システムが新しい開発への適応性を維持できるようにする。
* 新しいテクノロジーを採用する際には、環境への影響も考慮しましょう。エネルギー効率の高いデータセンターとグリーン・コンピューティングの実践は、技術界でますます重要になってきています。
	+ サーバー統合、仮想化、データセンター冷却の最適化などの技術を使用して、エネルギー効率の高いデータセンターを導入する。AWSの再生可能エネルギーへの取り組みなど、持続可能性に重点を置くクラウドプロバイダーを検討する。


## 詳細はこちら


この迷宮のようなデータ管理において、これら5つの重要な側面を理解することは、地図とコンパスを持つようなものである。自分がどこにいて、どこに向かっているのかを知り、旅に適したツールを持つことです。私たちが探ってきたそれぞれの疑問は、より多くの情報に基づいた、効率的で安全なデータ処理への足がかりとなります。


では、あなたのデータストーリーは？この迷路の紆余曲折を素早くナビゲートしていますか、それとも道しるべを求めていますか？あなたの物語、質問、洞察を以下で共有してください。この会話を続け、変化し続けるデータの領域で共に成長していきましょう。


私たちは、この複雑なデータ・ハンドリングのダンスであなたを導くためにここにいることを忘れないでください。さらなる洞察や最新情報については、[YouTube](https://www.youtube.com/aiven_io), [LinkedIn](https://www.linkedin.com/company/aiven/), [X](https://twitter.com/aiven_io) でフォローしてください。