【问题标题】:generate UUID automatically for all records in Cassandra for an existing dataset为现有数据集的 Cassandra 中的所有记录自动生成 UUID
【发布时间】:2017-04-19 21:28:20
【问题描述】:

我有一个现有的数据集,其中包含大约 700000 条 CSV 格式的记录。我已经将该数据文件导入到 apache Cassandra 表中。问题是

主键。如何为我的所有记录自动生成(upsert)uuid 到我的主键列中? 我正在使用 Cassandra 3.10。

【问题讨论】:

  • 你用什么将记录导入 Cassandra?您正在导入的现有记录是否已有主键?
  • 我使用 COPY 命令将数据导入 Cassandra 表。现有记录具有自增主键。但是 apache Cassandra 不支持自增主键。所以我决定放弃那一栏。

标签: cassandra uuid


【解决方案1】:

不幸的是,如果您使用COPY 命令,您实际上没有任何选项可以为您的行动态生成UUIDs。我认为您确实有两种选择,两种选择都涉及在某种程度上以编程方式做事:

  1. 对您的 CSV 文件进行一些预处理以生成 UUID 并将其添加到每一行,写出一个新文件,其中包含该附加字段和每行的 UUID 值。逐行处理文件并使用小的 Python 脚本或类似的东西生成这些值应该非常简单。然后你可以像以前一样使用COPY 命令将数据导入Cassandra。
  2. 由于您已经要编写一些代码,因此完全跳过使用COPY 命令,只需用 Python(或 Java 或您选择的语言)编写代码来读取文件,将每个 CSV 行解析为值,为该行生成一个 UUID,然后使用适合您正在使用的编程语言的驱动程序将数据INSERT 输入 Cassandra。

如果您决定使用选项 2,您将找到 DataStax drivers for Cassandra towards the bottom of this page 的列表,以及有关如何使用它们的文档。希望对您有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-02
    • 2011-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-06
    • 2013-07-30
    相关资源
    最近更新 更多