目次
エンタープライズレベルのデータセンターを構築するための最初のステップは、さまざまなビジネス システム内のデータの相互接続を実現し、データ アイランドを物理的に解消することです。これは主に、データの集約と交換の機能によって実現されます。さまざまなシナリオに直面して、データの種類とデータ ストレージ要件に応じてさまざまなソリューションが選択されます。
1. データの収集と集計のための方法とツール
1.オンライン行動収集
①クライアント埋設ポイント
完全な埋め込みポイント: 端末デバイス上のすべてのユーザー操作動作を記録します。一般に、すべての収集動作の目的は、組み込み SDK で初期設定を行うことで達成できます。無痕埋没点、無埋没点などとも呼ばれます。利点: 頻繁なアップグレードを行わずに完全なデータを取得できる 欠点: ストレージと送信コストが高い
視覚的な埋め込みポイント: 端末デバイス上のユーザーの操作の一部を記録し、通常はサーバー側の設定を通じて選択的に記録および保存します。利点: 頻繁なリリースがない、完全に埋め込まれたポイントよりもコストが低い、柔軟性が高い; 欠点: 必要なデータが収集されない可能性がある、再構成が必要など。
コード埋め込みポイント: ニーズに応じて各携帯電話のコンテンツをカスタマイズするには、対応する端末モジュールをアップグレードする必要があります。長所: 強力な柔軟性、独立した設計、ストレージと帯域幅のさらなる最適化; 短所: 高コスト、困難なメンテナンス、長いアップグレード サイクル。
②サーバー側埋め込みポイント
サーバー側の埋め込みの一般的な形式は、HTTP サーバーの access_log であり、これはすべての Web サービスのログ データです。利点: クライアントの複雑さが軽減され、情報セキュリティが向上します; 欠点: クライアントがサーバーと対話しない情報は収集できません。
2.オフライン行動収集
オフライン データは通常、Wifi プローブ、カメラ、センサーなどのハードウェアを通じて収集されます。
3.インターネットデータ収集
このデータ収集方法は通常、Web クローラー (確立されたルールに従ってインターネット情報を自動的に取得するプログラムまたはスクリプト) を使用し、Web サイトの自動テストや動作シミュレーションによく使用されます。一般的な Web クローラー フレームワーク: Apache Nutch 2、WebMagic、Scrapy、PhpCrawl など。インターネット データ収集は、対応するセキュリティ仕様、プロトコルなどに準拠する必要があります。
4.内部データ集計
①データの編成形態の分類
構造化データ: 2 次元の表で表現できる通常の完全なデータ、一般的なデータベースや Excel のデータ。
半構造化データ: JSON や XML などの複雑な構造など、正規かつ完全であるが、2 次元のテーブルでは表現できないデータ
非構造化データ: 写真、画像、音声など、2次元の表では表現できない不規則かつ不完全なデータで、抽出には複雑なロジックが必要です。
②データの適時性とアプリケーションシナリオの分析
オフライン: 主にユーザー データの大規模なバッチの定期的な移行に使用され、高い適時性は必要ありません。一般に、分散バッチ データ同期が採用され、データは接続を通じて読み取られます。データの読み取りプロセスには、完全な方法と増分方法があります。 、統合処理後にターゲット ストレージに書き込まれます。
リアルタイム: 主に低レイテンシのデータ アプリケーション シナリオ向けで、通常は増分ログまたは通知メッセージを通じて実装されます。業界には、canal、flink、およびその他の実現方法があります。
③ETLとELT
ETL (抽出-変換-ロード、抽出-変換-ストレージ)、抽出中の処理、利点: ストレージの節約、その後の処理の簡素化欠点: 不完全または損失したデータ、低い処理効率
ELT (Extract-Load-Transform、抽出-保存-変換)、抽出が完了したら処理を行う メリット:データが完成しており、ビッグデータなどの分散後処理の効果が高い デメリット:ストレージが大量に占有しているため、無駄なデータが多すぎると効率が低下する可能性があります
④共通データ集計ツール
Canal: Mysql などのスレーブを装ってログの変更を監視するデータ プッシュ ツール。これは、mysql データ変更のデータ収集ツールとしてよく使用されますが、複数の消費やデータ配布のシナリオには適していません。
Sqoop: 一般的なビッグ データ ソリューション。Hadoop の MapReduce 実装に基づいた、構造化データと HDFS 間のデータ移行ツール。利点: 特定のシナリオ、高いデータ交換効率。欠点: 高度なカスタマイズ、操作が簡単ではない、MapReduce に依存しているため、機能の拡張性が制限され、制限されています。
DataX: Ali のプラグイン オフライン データ交換ツールのセット。これは、プロセス中の読み取りと書き込みの直接接続に基づいています。
2. データ交換製品
上記で紹介したツールは通常、いくつかの単一のシナリオまたはプロセスのみを満たすことができます。複雑な企業データ交換シナリオに対応するには、データ ソース管理、オフライン データ処理、リアルタイム データ処理などを含む完全なデータ交換製品が必要です。
1.データソース管理
データ ソースの管理は主に、データによって使用されるストレージを管理することです。これは、プラットフォームがデータ交換を実行するときに外部ストレージを便利に管理するために使用できます。
データソースの分類:
リレーショナル データベース: Oracle、Mysql、SQL Server、Creenplum など。
NoSQL ストレージ: HBase、Redis、Elasticsearch、Cassandra、MongoDB、Neo4j など。
ネットワークと MQ: Kafka、HTTP など。
ファイルシステム: HDFS、FTP、OSS、CSV、TXT、EXCELなど。
ビッグデータ関連: HIVE、Impala、Kudu、MaxCompute など。
2.オフラインでのデータ交換
オフライン データ交換中に、データの適時性要件が低く、スループットが高いシナリオでの大規模データのバッチ移行の問題を解決します。
オフライン データ同期テクノロジーのハイライト:
①事前監査
②データ変換
③クラスタ間のデータ同期
④完全同期
⑤ インクリメンタル同期
3.リアルタイムのデータ交換
リアルタイム データ交換は主に、データベースやログ クローラーなどのデータを Kafka、Hive、Oracle などのストレージにリアルタイムで接続する役割を果たします。その 2 つのコア サービスは、データ サブスクリプション サービス (クライアント サーバー) とデータ消費サービス (コンシューマー サーバー) です。
リアルタイム スイッチング アーキテクチャ図の例:
3. データストレージの選択
データの保管については、一般にデータの規模、データの作成方法、データの活用方法などを総合的に検討する必要があります。
1.オンラインとオフライン
オンライン ストレージとは、ストレージ デバイスと保存されたデータが常に「オンライン」に留まり、ユーザーが自由に読み取ることができ、データ アクセスのためのコンピューティング プラットフォームの速度要件を満たすことを意味します。オンライン ストレージは通常、ディスク、ディスク アレイ、クラウド ストレージなどです。
オフライン ストレージは、オンラインに保存されているデータをバックアップして、起こり得るデータ災害を防ぎます。オフラインに保存されたデータは頻繁に呼び出されることはありません。一般的な代表的な製品としては、ハードドライブ、磁気テープ、光ディスクなどがあります。
2. OLTPとOLAP _
OLTP と OLAP は競合したり排他的ではなく、互いに協力し、Win-Win の協力関係を実現します。
OLTP |
OLAP |
|
ユーザー |
オペレーター目線で日々の業務をサポート |
意思決定者にとって、管理ニーズをサポート |
関数 |
日常業務 |
分析指向 |
DB設計 |
アプリケーション指向、トランザクション駆動 |
主題指向、分析主導 |
データ |
現在、最新、詳細、二次元、離散 |
歴史的な、集約された、多次元の、統合された、統合された |
アクセス |
数十のレコードを更新可能、読み取り/書き込み可能 |
更新可能ではありませんが、定期的に更新され、数百万のレコードを読み取ります |
雇用者 |
単純な事柄 |
複雑なクエリ |
DBサイズ |
100MB~GBレベル |
100GBからTBレベル |
3.ストレージテクノロジー
1.分散システム
分散システムには通常、分散ファイル システム (ストレージ システムは複数のテクノロジの連携が必要で、ファイル システムは最低レベルのストレージ機能のサポートを提供します) と分散キーバリュー システム (ユーザーは単純な関係を持つ半構造化データを保存します) が含まれます。
2.NoSQLデータベース_ _
NoSQL の利点は、超大規模なデータ ストレージをサポートできることです。柔軟なデータ モデルは、Web2.0 アプリケーションを非常によくサポートし、強力な水平拡張機能を備えています。代表的な例には、キー/値データベース、列ファミリー データベース、ドキュメント データベース、グラフ データベース (HBASE、MongoDB など)
3.クラウドデータベース
クラウド データベースは、クラウド コンピューティング技術に基づく共有インフラストラクチャ方式であり、クラウド コンピューティング環境に展開および仮想化されたデータベースです。