【问题标题】:Mapping the JSON attribute values dynamically to another JSON and store to Cassandra database将 JSON 属性值动态映射到另一个 JSON 并存储到 Cassandra 数据库
【发布时间】:2021-06-25 07:33:07
【问题描述】:

我是新的 JSON 和 Cassandra 部分,我正在做一个 POC,我在其中接收 JSON 对象流。我有一个配置 JSON,它类似于传入 JSON 对象的子集。现在我正在做的是我有方法可以从 JSON 对象中提取所需字段并映射到如下所示的 POJO 对象

@Table(keyspace = KEYSPACE_NAME, name = DATA_HISTORY_TABLE_NAME, readConsistency = QUORUM,
        writeConsistency = QUORUM,
        caseSensitiveKeyspace = false,
        caseSensitiveTable = false)
public class Table1 implements Serializable {
    @PartitionKey
    @Column(name = "FIRSTNAME")
    private String firstName;

    @Column(name = "USER_ID")
    private String userId;

    @Column(name = "TRASACTION")
    private double transactionAmount;

    @Column(name = "CREATED_TIMESTAMP")
    private Date createdDateTime;

    @Column(name = "CREATED_DATE")
    private LocalDate createdDate;
}

现在一切都很顺利。我正在尝试使这种方式更加动态,我将配置文件存储在数据库中,该文件将在运行时通过 API 调用拉取。配置文件结构示例如下所示,我可以使用 JSON 路径有多个条件

{
    "Condition1": {
        "path": ["JSON PATH OF VALUE I WANT TO FETCH"]
    }
}

样品条件:

{
    "Condition1": {
        "path": ["firstName"]
    },
    "Condition2": {
        "path": ["userID"]
    }
}

传入的 JSON 可以有任何值,但我想从传入的 JSON 对象流中提取以上两个值并存储到 Cassandra 数据库。我想到了一个解决方案,将传入的 JSON 对象转换为 java POJO 类并提取信息,但由于这是一个流平台,这可能会杀死 JVM。请建议我任何有效的方法来动态映射 JSON 属性。提前致谢。

【问题讨论】:

    标签: java json cassandra jsonpath jsonparser


    【解决方案1】:

    由于您有一个流式用例,请查看DataStax Apache Kafka Connector

    使用 Kafka 连接器,您可以map the JSON fields to CQL columns。然后来自流的数据将被写入 Cassandra。干杯!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-07
      • 1970-01-01
      • 2019-07-05
      • 1970-01-01
      • 2019-10-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多