NoSQL:NoSQLのアーキテクチャの構築、リアルタイムの広告システムを使用する方法

次の記事は、Jingdongは、小売技術から来て、鄭市を考えます

リンク:mp.weixin.qq.com/s/OFkRnbWEa ...

JDNoSQLとは何なプラットフォームです

JDNoSQLプラットフォームはです。KeyValueミリ秒記憶構造化データと非構造化データ、ランダムアクセスおよび更新のサポート、柔軟な動的列機構、支持構造体の水平方向の膨張、高い並行性を提供し、低レイテンシ分散列指向ストレージサービスであります、さまざまなビジネスシナリオを満たすために、高可用性、強い均一なデータベースサービス。完璧なプラットフォームのサポート、テーブルのビジネス支援自助建設は、監視、およびその他のオンラインDDLを表示します。

1.1 JDNoSQL生態位置

図から分かるように、JDNoSQL HDFSに分散建物は、カラムは、ストレージシステムを指向します。あなたは、リアルタイムの読み取りと書き込み、非常に大規模なデータセットへのランダムアクセスを必要とするときは、JDNoSQLを使用することができます。現在、データベース関係の市場にいくつかの種類、および大規模かつ分散性を構築する際に考慮していません。レプリケーションとパーティションの境界によって拡大する多くの企業が画期的な単一ノードのデータベースを作成し、これらの機能は通常、後で追加され、インストールとメンテナンスは非常に複雑です。また、これは達成することは不可能でさえ、かなり高いような大規模なRDBMS上でこれらの操作のコストで、複雑なクエリ、トリガ、ビュー、および外部キー制約をカップリングとしてRDBMSの特定の機能に影響を与えるだろう。別の角度からJDNoSQLプロセスのスケーラビリティの問題。それは次拡張するノードから直線的に増加します。JDNoSQLは、リレーショナルデータベースがSQLをサポートしていない今JDPhoenixでSQLをサポートしていませんが、それはRDBMSには、市販のサーバークラスタ上で、JDNoSQL巧みに大規模で疎テーブルを扱うことができないで、独自の専門性を持っています。JDNoSQLは、次の特性があります。

  • 大:Aテーブルは百万に数百万行の数百を持つことができます。

  • 列指向:ストレージおよびアクセス制御のためのリスト(クラスター)、カラム(クラスタ)の独立した検索。

  • スパース:列が空(NULL)で、テーブルは非常にまばらなように設計することができますので、収納スペースを取らないために。

  • いいえモード:必要に応じて、各行は、一次ソートキーを有し、列の任意の数とすることができ、カラムは、非常に異なる列を有することができ、テーブル内の異なる行に、動的に増加させることができます。

  • データの複数のバージョンは、各セル内のデータは、自動的にバージョン番号、セルが挿入されるタイムスタンプのバージョン番号を割り当て、デフォルトで、複数のバージョンを有することができます。

  • シングルデータタイプ:データはJDNoSQL列、ないタイプです。

シナリオ

主にどのようなシーンに関連Jingdongは中のNoSQL:

  • 事業の種類タイミング(監視、IOT)

  • 注文メッセージ(注文/政策、チャット)

  • CUBE分析(リアルタイムワイド・テーブル、レポート、検索を推奨)

  • モニタリング(UMP / MDC / CAP / JDH)

  • ストリーミングサービスをフィード(評価情報、Q&A情報、滝、友人の輪)

  • AIストレージ(ユーザー特性、NLPコーパスモデル記憶)

  • 時空間データ(気象ネットワークを追跡します)

  • 金融サービス(相関分析、信用分析、リスク管理/ IOUの/支払/情報管理)

2.1リアルタイムコンピューティングシステムでのNoSQLベースの広告

2.1.1いくつかの大規模なオンライン広告:

伝統的な広告と比較すると、これらの特性を理解するために、独自の特性の一部を示したオンライン広告は、かなりのオンライン広告マーケティング戦略の基礎となっています。次のようにオンライン広告の特長:

  • スプレッドワイド:オンライン広告の普及範囲、時間と空間によって限定されるものではないが、あなたは、インターネットを経由して、世界中の広告情報24時間365日の広がりを置くことができます。中国のインターネットユーザーの膨大な数が、また、これらのインターネットユーザーの急速な発展が高い購買力を持っているが、オンライン広告の聴衆で、広告は、伝統的なメディアのあらゆる種類の拡散効果、世界のインターネットのどこを閲覧するのは自由ですこれを達成することができません。

  • 情報の非強制的な普及:オンライン広告の需要広告の特性、新聞を持つプロパティは、広告を分類しますが、徹底的に、お問い合わせをして主導権を示すために、無料の閲覧や潜在的な顧客のニーズに合わせて提示し、これをコミュニティ全体を保存聴衆を必要としません電力資源、広告の関連性と有効性を向上させます。

  • 正確な統計ができ、データのオーディエンス量:伝統的なメディア広告は、権威と公平性トラフィック統計システムにより、広告メッセージ、インターネット広告にさらされている正確にどのように多くの人々を知ることは困難である、来場者の正確な統計数各広告時に長いにこれらのユーザーがアクセスする前に、そのため、あなたのパフォーマンスの正確な評価、さらに最適化広告戦略に貢献し、地理的分布、。

  • 柔軟な適時:必要に応じてインターネット広告は、広告コンテンツを更新することができます。

  • 強烈な交換と官能特性:インターネット広告のキャリアは、製品に興味を持って観客を必要とし、唯一のより多くの詳細については、より詳細な、より鮮やかな情報を学ぶためにクリックする必要があり、さらには消費者が許可するなど、基本的にはマルチメディアハイパーテキストです個人的に顧客の没入を可能にするバーチャルリアリティ技術を通じて、製品、サービス、ブランドを体験。

2.1.2オンライン広告データの種類:

プレゼンテーションをクリックし、行動、およびサードパーティのデータモニタリング:オンライン広告に関連する収集データは、四つのカテゴリーの中で最も重要な多くのです。

  • データショーの広告

広告は、データを宣伝示し、一般的には広告のためにサーバに送信するデータのニーズが量(adpv)統計分析を示し、ショーを得られたデータです。一般データは、日付、ユーザーID、広告IDとIP情報が含まれています。以下は、データ・フォーマット、JSONフィールド拡張の広告プレゼンテーションです。

2015-01-13 19:11:55{00D81D1D-00A291-0E2300-87DBCE0DA90} {“adia”:"31769","asid": "2","aspid":"0","ptime": "14","ag":"4,5.20,26.1908","ecode": "15","type":"2","dp1": "1","adpid":"0","dsp": "0","source": "s"}61.237.239.3 天津 天津市
复制代码
  • 広告クリックデータ

広告クリックデータは、ユーザーが取得した各広告の位置をクリックすると、一般的にも、広告のクリック(adclick)統計分析のためにサーバーに送信されたデータを必要とするデータです。一般的にデータをクリックし、日付、ユーザーID、広告IDとIP情報が含まれています。ここでは、広告のクリックデータ形式、および広告の表示回数、およびあまり違いはありません。

2015-01-13 00:11:06{D33333C3-000C84-2345FB-DB768EC56} {"wid":"13","aid": "103297","vid":"1446779","adid": "29260","asid":"1","aspid": "1","mid":"16507","mg": "155","area":"13","dsp": "3"} 175.8.146.246 湖南省 长沙市
复制代码
  • 行動データを広告します

行動データを広告することは、ダウンロードに利用可能なユーザ広告を指し、データをインストールするか、トランザクション、一般的なデータはまた、彼は分析するだろうと宣伝行動(adaction)のために、サーバーに送信する必要があります。一般的な行動データは、日付、ユーザーID、広告IDとIP情報が含まれています。以下は、広告行動データフォーマットで、広告データはあまり違いはありませんが、異なるJSON拡張フィールドの一般的な情報の数:

2015-01-13 09:59:39{00567D26AD-565D01-C2238-F99000C0A0} {"adid":"234555","asid": "562", "aspid":"12","type": "1"} 120.29.183.47 福建省 宁德市
复制代码
  • サードパーティの監視データ

だから、広告主が簡単に習慣を閲覧オンラインメディアのターゲット消費者を理解することは、顧客等、の確率に変換され、広告の監視のモニタリングに参加するために、サードパーティの広告会社を使用することは非常に必要な、公正、客観的かつ権威ある統計を取得。第三者は、日付、広告IDとユーザーIDを使用してデータを監視し、生産を監視します。ここでは、サードパーティ製の監視データの例は次のとおりです。

2014-12-31 108A451BD3787_22E6_D020_786DF2695B {000AD54073-19DDC2-971F26-36F4119425}
复制代码

データを宣伝2.1.3課題

データ値がそうイベントの後、彼らは可能な限り、最高のデータは、それが処理された後すぐに現れることができるとすぐに処理されなければならない、時間の経過とともに減少し、処理された後、イベントの発生、代わりにキャッシュされたバッチの再処理、データ・フロー・モデルでは、入力データが処理される(全部または一部)ディスクまたは利用可能なランダムアクセスメモリに格納されていない場合、それらは複数または「連続ストリーム」フォームに到達します。リレーショナルモデルに保存されている従来のデータとは異なり、いくつかの側面の特長があります。

  • オンラインのリーチ内のデータ要素のストリーム、リアルタイム処理を必要とします

  • 新しいデータ要素の到着の順序を制御することができないシステムは、データストリーム内のデータ要素が複数のデータストリームを横切っもあるかどうか、処理されるべき、再生されるデータストリームの要素の順序及び最後のデータストリームと矛盾です。

  • データ・ストリームの潜在的な大きさは無限かもしれません。

  • データ・ストリームが要素に処理されると、どちらか廃棄されるか、またはストレージをアーカイブしました。

2.1.4主な機能

システムが唯一の広告サービスのために現在、必要と広告主と広告データは、在庫システムは、投資額の計算に基づいて、既存のポリシーの後に実行することができ、在庫システムを反映するために、リアルタイムでデータをクリックして表示されます。同時に、我々は、月の毎日を広告するの量を示すために、いくつかの統計情報を提供することができ、3次元での省、自治体や利用者の統計情報に分けることができます。前提の下で、30秒以内に、アクセス要求のサポートピークTPS = 500Wを上記の機能、遅延のシステムの性能要件を満たすことができます。

2.1.5。システムアーキテクチャ

前回の要件分析によると、設計目標と全体の広告のリアルタイムコンピューティングシステムの主な機能の要件が6分割されています。ログ受容層、層のプロデューサー、コンシューマ・キュー層、消費者、ビジネスロジックとストレージ階層を。前記リアルタイムデータのJingdong JDQパイプのメッセージキューの選択、分散フロー計算シナリオに使用されるメッセージキュー、ビジネスロジック選択JingdongのJRCフロー計算、FLINKストリーミングベース計算エンジンとを達成するためにカフカベースのハイスループット千万QPS、ランダム・アクセス・メモリを満たすために、計算の流れ、高メモリの同時使用、低遅延、高可用性、高スループットに、NoSQLのは、分散しました。次のようにチャート:

  • ログ受容層

この層は、データ・ソースは、ログ受信手段によって生成されるローカル・ログ・ファイルです。一般的な手段を受信すると、ローカルディスクに保存されたデータストリームを受信した後、Apache HTTPサーバのようなスクライブ、Nginxは、Syslogの-ngのとなります。

  • 生産者層

データ層が発生するローカルのクラスタカフカログファイルのトランスポート層であり、指定されたファイルまたはディレクトリをリアルタイムモニタリングは、カフカ増分クラスタに抽出されたデータを送信します。

  • メッセージキュー・レイヤー

この層は、高スループット、及び膨張特性の良好なレベルと共に、データを入力する責任バランシングカフカクラスタ負荷、メッセージバッファです。カフカの特性スループット集光され、バッファリング機能を有するので、カフカ層は、メッセージキューを選択しました。

  • 消費者層

キューカフカ消費からアプリケーション層メッセージ、およびビジネス・ロジックへの入力メッセージの数、サブレイヤネクサス。ビジネスロジックはFLINKフレームを使用するため、全ての層は、消費者とFLINKカフカ二つのクラスタと通信する必要があります。

  • Yewuluojiceng

この層は、サブ需要を達成するための重要な層である、FLINKフレームワークを使用して、我々は非常に簡単にビジネスニーズの異なるルールを展開することができ、かつ迅速に計算することができます。

  • ストレージ層

ターゲット・ストレージは、ビジネスニーズの特定のシーンのための高スループット、低レイテンシのリアルタイムの更新と外観を満たすために、だけでなく、需要拡大のレベルを満たすために、分散ストレージのNoSQLを使用することを選択しました。

2.1.6表のデザイン

リアルタイム問合せおよび統計周期、最終的な結果の需要を満たすために、NoSQLのデータは、結果のテーブルの構造を定義することができ最初の必要性が存在します。あなたがデータのこれらの2つのタイプの統計的構造を保存するために2つのテーブルを作成する必要があるので、広告や広告クリックデータを含むため、データには、関連するカテゴリを表示しない、とのビジネスの方向が異なっています。

  • 広告を表示するリアルタイム統計

次のように設計された構造を示すリアルタイムの統計情報を広告:

その中でも、CCBのデザインは、これらの3つの次元のより効率的な統計データのために、区別される表は、それぞれCCB、州名、都市名とUIDの3種類が含まれていることが重要であり、列の家族と列数それは1です。以下は、値フィールドは16進数のバイトコード、長い整数を表すリアルタイム統計データラインの広告の一例です。

29260_{2EEBEE83-EEE4-EAE6-1F0D-A27AB14549FC}_20150117 column=pv:cnt,timestamp=1390261754783,
value= \x00\x00\x00\x00\x00\x00\x00\x02
复制代码
  • リアルタイム統計に広告をクリックしてください

以下のように設定構造のリアルタイム統計で広告をクリックしてください:

かなりシンプルなリアルタイム統計、リアルタイムのクリックの統計情報を表示する広告を比較すると、CCBは一種類のみである:adid_プラス日付、非常に従来の設計、カラム家族やデータ列の量は1です。以下に、リアルタイム広告がデータテーブルの例示的な行をクリックし、値フィールドは16進数のバイトコードを表す長整数です。

36713_20150117 column=clk:cnt, timestamp=1390374472961, value=\x00\x00\x00\x00\x00\x00\x00\x06
复制代码

NoSQLの統計情報を使用して2.1.7

説明によると、上記の表の構造設計を実現するために、アーキテクチャは、次のクエリのため、リアルタイムの需要の多様性をサポートしています。

  • 現在の州の広告の一定量。
  • 都市の現在における広告の一定量。
  • ユーザの現在のクライアントの配信ボリューム上の広告
  • 広告の現在のクリック
  • 時間の累積期間中に配信動向の州での広告の歴史(月など)
  • 時間の累計期間における都市の配信の動向(月など)の広告の歴史
  • 時間の累計期間におけるユーザクライアント実行している傾向の(月など)の広告の歴史
  • (月など)時間の累計期間における広告トラフィックの動向

これらの上記の要件は、簡単のNoSQLクライアントをカプセル化することによって達成され、リアルタイムのニーズを満たすことができます。d3.js等echarts、highcharts、フロントエンドデータ視覚化の手段によってそのように、JavaScriptフレームワークの高速実装を開くことができます

概要

ガートナーによると、2020年に世界的な非リレーショナルデータベース(のNoSQL)を見込んで - 2022はるかに高い全体的なデータベース市場に比べ、約30%の高成長を維持することが期待されます。NoSQLのNoSQLとプラットフォームを処理する低コストのワンストップ・データの生態建設に基づいてのNoSQLとビッグ​​データ技術の台頭と発展、で活気づいています。現在サポートしている:NoSQLAPI、関係PhoenixSQL、タイミングOpenTSDB、フルテキストHGraph、HBaseの上などの分析スパークを描く、Solrの/ ES、時間と空間GeoMesaを検索します。NoSQLの、NoSQLのますます大規模なユーザーグループの急速な発展に伴い、NoSQLのおよび将来の生態NoSQLのは、より良い、さまざまなビジネスシナリオを満たしています。

おすすめ

転載: juejin.im/post/5e1d8e97f265da3e28099572