【问题标题】:Is cassandra suitable for analytics storing?cassandra 是否适合分析存储?
【发布时间】:2015-07-11 11:42:15
【问题描述】:

我愿意开发一个开源分析项目,该项目将存储访问、推荐人、设备(按种类、家庭等)。

我对 cassandra 世界还很陌生,所以我问了很多关于用它建模的问题。

我已经阅读了documentation 中的lot 关于它,这是我的数据模型的一部分:

create table visits(
    id                      UUID,
    remote_addr             VARCHAR,
    method                  VARCHAR,
    user_agent              VARCHAR,
    status_code             INT,
    host                    VARCHAR,
    protocol                VARCHAR,
    path                    VARCHAR,
    data                    VARCHAR,
    headers                 VARCHAR,
    query_string            VARCHAR,
    referer_id              UUID,
    device_id               UUID,
    browser_id              UUID,
    platform_id             UUID,
    created_at              TIMEUUID,
    PRIMARY KEY (id, created_at) ) WITH CLUSTERING ORDER BY (created_at DESC);

create table referers(
    id                      UUID PRIMARY KEY,
    host                    VARCHAR,
    path                    VARCHAR,
    first_seen              TIMESTAMP,
    last_seen               TIMESTAMP,
    seen_count              INT );

create table browsers(
    id                      UUID PRIMARY KEY,
    key                     VARCHAR,
    version                 VARCHAR,
    first_seen              TIMESTAMP,
    last_seen               TIMESTAMP,
    seen_count              INT );

create table platforms(
    id                      UUID PRIMARY KEY,
    key                     VARCHAR,
    version                 VARCHAR,
    first_seen              TIMESTAMP,
    last_seen               TIMESTAMP,
    seen_count              INT );

使用此模型,如果我想要例如“来自 status_code 200 的所有访问”,我将不得不创建一个二级索引,对于引用者、设备等也是如此。

我是否需要像这样创建单独的表“visits_by_referers”、“visits_by_devices”:

create table visits_by_referers(
    visit_id                UUID,
    device_id               UUID,
    PRIMARY KEY (visit_id, device_id)
);

还是我完全错了,cassandra 不适合这个?

谢谢你:)

【问题讨论】:

  • 我从 cassandra 中学到的东西是:知道你想问什么查询,并为此目的对数据存储进行建模。所以不会很灵活。我对分析的了解是:随着时间的推移,会出现不同的问题,这些问题(可能)不太适合数据模型,并且非常欢迎灵活性。至少我会三思而后行。但我对其他意见感兴趣:)

标签: cassandra


【解决方案1】:

在 3.0 出现物化视图 (https://issues.apache.org/jira/browse/CASSANDRA-6477) 之前,这对于这种类型的用例来说将是巨大的,如果您打算进行直接查询,则需要为“推荐人访问”等内容创建单独的表。

很多人倾向于使用单个大表,然后覆盖 Spark 之类的东西,将数据实际读入内存并进行更复杂的查询。

【讨论】:

    猜你喜欢
    • 2010-12-23
    • 2012-02-09
    • 2011-06-10
    • 2017-02-03
    • 2014-11-16
    • 1970-01-01
    • 2011-01-24
    • 2011-12-11
    • 1970-01-01
    相关资源
    最近更新 更多