0

私は、私たちがしなければならないプロジェクトに取り組んでいますIP Address lookups。これでデータセットを取得できました。次のステップは、このデータセットをテーブルに入力することです。IP Address as an input次に、データベースベースを受け入れてルックアップするサービスをセットアップしますIP Address。したがって、以下はデータセットは次のようになります-

ip_address      country region  city           metro-code   latitude    longitude   postal-code   country-code   region-code    city-code   continent-code  country-code

24.32.116.116   usa       tx    clarksville    623           33.6103    -95.0498    75426            840           44             34918            6            us
65.29.108.232   usa       mi    novi           505           42.4637    -83.4604    48375            840           23             4339             6            us
66.169.99.69    usa       tx    ft worth       623           32.7016    -97.3823    76109            840           44             771              6            us
72.70.100.111   usa       ma    peabody        506           42.5332    -70.9726    1960             840           22             1392             6            us
174.252.116.137 usa       va    oakton         511           38.8892    -77.3222    22124            840           47             3860             6            us
68.55.144.242   usa       md    pasadena       512           39.1276    -76.5125    21122            840           21             4358             6            us
174.252.83.27   usa       pa    lancaster      566           40.0459    -76.3542    17603            840           39             333              6            us
174.78.192.31   usa       ga    warner robins  503           32.5958    -83.6384    31088            840           11             5052             6            us
98.192.146.235  usa       fl    panama city    656           30.1804    -85.5598    32404            840           10             671              6            us
71.192.181.20   usa       ma    springfield    543           42.1187    -72.5483    1109             840           22             967              6            us
76.183.54.227   usa       tx    dallas         623           32.7202    -96.6769    75217            840           44             77               6            us
69.62.143.140   usa       ca    granite bay    862           38.7442    -121.191    95746            840           5              49451            6            us
69.142.76.32    usa       nj    penns grove    504           39.707     -75.4467    8069             840           31             2335             6            us
70.173.54.93    usa       nv    las vegas      839           36.2059    -115.225    89108            840           29             173              6            us
98.242.8.222    usa       ca    fresno         866           36.7968    -119.883    93722            840           5              19               6            us

問題文:-

100 Millions callsの 1 日あたりの交通量が予想されIP Address lookupます。

そして、このデータセットは、すべての国を意味する世界的なデータセットになります。MySql databaseそして、これらのデータセットをここに保存する予定In Memory Databaseです。

single table今私の質問は、上記の列だけを作成する必要があるということですか? または、上の表を 2 つまたは 3 つに正規化する必要がありますか? また、列がある場合は列に索引を作成する必要がありますか?

基本的に、このテーブルのスキーマをどのようにセットアップすれば、予想されるトラフィックでルックアップにそれほど時間がかからないようにしようとしています。そして、ルックアップを行うサービスは、応答を非常に速く返す必要があります。

4

1 に答える 1

0

あなたの数値に基づいて、40GBを超える3〜5k / sのピークを見ていると思います. 関心のあるクエリが IP->record であると仮定すると、mysql に対して直接実行しないことをお勧めします。

私があなたのシステムを設計するとしたら、次のことを計画します。

  1. データ プロバイダーからの生データを保存/提供するためのドキュメント指向のストア。ここでは、Tokyo-cabinet、Cassandra、または HBase のいずれかで問題ありません。

  2. QA 目的でデータを正規化するための完全に正規化された (おそらくスタースキーマ) mysql インスタンス。

  3. 軽量の Web サーバー shim を介してデータを提供するための memcached または同様の分散型インメモリ レコード キャッシュ。

QA 後のデータは、mysql からキャッシュに直接提供するか、doc-store に格納された「クリーン」属性から提供できます。ストアに対して通常のアドホック相関クエリを実行する必要がない限り、おそらく後者が望ましいでしょう。その場合、時間とサーバー リソースを mysql に割く方がよいでしょう。

率直に言って、トランザクションごとにデータベース クエリを実行したくはありません。

于 2013-03-12T02:22:05.570 に答える