【问题标题】:How to create dynamic schema using CQL如何使用 CQL 创建动态模式
【发布时间】:2015-10-04 00:30:12
【问题描述】:

我需要在一行中插入一个新列,以使用 CQL 处理半结构化数据。可能吗 ?如果可以,请指教。

【问题讨论】:

  • 您是否尝试添加一列?或者动态地做到这一点?
  • @phact - 动态添加列..
  • 正如 Alexander 指出的那样,动态添加列并不是 cassandra 中的最佳实践。您必须等到模式完全传播后才能发出另一条语句。使用 Alexander 建议的选项之一可能会更好。
  • 否则你可以在java驱动中使用cluster.getMetadata().checkSchemaAgreement()之类的东西,但这不是推荐的路线。彻底测试...请注意,这在分布式客户端场景中不起作用。
  • 感谢 phact..您能否确认我们是否可以通过 Thrift API 创建动态架构 ..?

标签: cassandra cql datastax


【解决方案1】:

不建议在 Cassandra 中动态更改表结构,因为它涉及到集群中的所有节点来确认 ALTER 语句(以及您可能遇到的其他问题)。

你最好的选择是:

  • 使用具有基本类型的集合:地图可以解决您的问题
  • 使用集合和 UDT 的组合
  • 例如使用文本字段并以 JSON 格式存储数据(适用于之后未更新数据的情况)
  • 使用 blob 并在其中存储您想要的任何格式(假设您也从未更新过它)

您还可以更改模型并将要添加为行的列改为处理。

如果您需要进一步的建议,请更准确地分享您的模型和用例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    • 2015-03-25
    • 2020-05-22
    • 1970-01-01
    • 1970-01-01
    • 2019-09-11
    相关资源
    最近更新 更多