我如何在 CQL 中验证所有行都已成功从 CSV 复制到 Cassandra table? ***SELECT 语句未返回所有结果
How do I verify in CQL that all the rows have successfully copied from a CSV to a Cassandra table? ***SELECT statements are not returning all results
我试图通过 public 数据集来理解 Cassandra。
我在本地 Cassandra 实例上将 1.5M 行从 CSV 插入到 table,WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 }
table 是用 one field as a partition key, and one more as primary key
创建的
我确认已处理 150 万行。
COPY Completed
但是当我在 table 上 运行 SELECT or SELECT COUNT(*) 时,我总是得到最多 182 行。

其次,records returned with clustered columns seem to higher than single columns 的数量对我来说没有意义。从 Cassandra 的架构和查询的角度来看,我缺少什么。
最后我也尝试从 pyspark shell 读取相同的 Cassandra table,它似乎也在读取 182 行。
您的主键是 PRIMARY KEY (state, severity)
。使用此主键定义,所有处于相同状态且严重程度相同的事故行将相互覆盖。您的数据集中可能只有 182 种不同的(状态、严重性)组合。
您可以包含另一个聚类列来记录唯一的事故,例如 accident_id
这篇博客强调了主键的重要性,并提供了一些示例:
https://www.datastax.com/blog/2016/02/most-important-thing-know-cassandra-data-modeling-primary-key
我试图通过 public 数据集来理解 Cassandra。
我在本地 Cassandra 实例上将 1.5M 行从 CSV 插入到 table,WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 }
table 是用 one field as a partition key, and one more as primary key
我确认已处理 150 万行。 COPY Completed
但是当我在 table 上 运行 SELECT or SELECT COUNT(*) 时,我总是得到最多 182 行。  其次,records returned with clustered columns seem to higher than single columns 的数量对我来说没有意义。从 Cassandra 的架构和查询的角度来看,我缺少什么。
最后我也尝试从 pyspark shell 读取相同的 Cassandra table,它似乎也在读取 182 行。
您的主键是 PRIMARY KEY (state, severity)
。使用此主键定义,所有处于相同状态且严重程度相同的事故行将相互覆盖。您的数据集中可能只有 182 种不同的(状态、严重性)组合。
您可以包含另一个聚类列来记录唯一的事故,例如 accident_id
这篇博客强调了主键的重要性,并提供了一些示例: https://www.datastax.com/blog/2016/02/most-important-thing-know-cassandra-data-modeling-primary-key