3

非常に一般的なデータベースの質問があります。Web サイト全体のクリックを追跡するテーブルをデータベースに作成しました。私のテーブル構造は次のとおりです。

  • (PK) - ID、
  • (FK) - ページID、
  • (FK) - ContactID、
  • 日にち

私が抱えている問題は、大規模なユーザー セットと大量のクリック スルー データにより、このテーブルの行数が 2,000 万から 3,000 万の範囲になることです。日付別のレポート作成を容易にするために、このデータを整理する別の方法はありますか?

SELECT P.TITLE, COUNT(DISTINCT(C.ID)) 
FROM PAGES P 
INNER JOIN CLICKS C ON C.PAGEID = P.PAGEID 
WHERE C.DATE >= 5/1/2013 AND C.DATE < 6/1/2013 AND C.PAGEID = XYZ
4

2 に答える 2

2

次元設計といいます。

Pentaho Aggregation Designer などのツールを使用して、適切な集計 (月ごとの顧客ごとのクリック数など) を見つけることができます。

次に、Mondrian + Saiku などの OLAP ツールを使用します。これは、有利な場合に集計を使用するようにクエリを動的に書き換えることができます。

整数のスマートキー† (20130621 など) を持つ日付ディメンション テーブルを使用する必要があります。これにより、訪問の事実を日付別に簡単に分割できます。

Pentaho Data Integration を使用すると、テーブルを簡単に分割できます。

† 寸法設計でスマート キーを使用する必要があるのは、この場合だけです。

于 2013-06-22T00:59:19.727 に答える