代码之家  ›  专栏  ›  技术社区  ›  xmar

如何在带有存储和处理器API的Kafka流中实现GDPR忘记(删除)权限?

  •  0
  • xmar  · 技术社区  · 8 年前

    这个问题是关于在Kafka Streams应用程序中实现GDPR的,其中包含使用处理器API进行有状态处理的完整保留主题。

    假设应用程序接收事件。有不同的客户机,客户机有用户,这些用户生成“事件”主题的事件。

    如果我保留(就像我在非压缩主题中所做的那样)键作为(clientId,userId),压缩将把所有(clientId,userId)记录减少到一个,显然不是我想要的。

    但是,这样做,我需要关联的状态存储与源主题保持相同的分区,即(clientId,userId),但不是相同的键。这可行吗?

    如何从状态存储中删除主题?对处理器代码中的“null”值作出反应相当麻烦(因为您的数据是(clientId,userId),而不是(clientId,userId,eventId))。


    一般参考资料 GDPR on Kafka 请不要包括基于加密的解决方案,如 Daniel Lebrero's

    1 回复  |  直到 8 年前
        1
  •  1
  •   Matthias J. Sax    8 年前

    但是,这样做,我需要关联的状态存储与源主题保持相同的分区,即(clientId,userId),但不是相同的键。这可行吗?

    对。如果输入主题是按(clientId,userId)划分的,那么存储将以相同的方式进行划分。如果在应用程序中重新划分数据,则可以传递自定义 StreamPartitioner 保留(clientId,userId)分区方案。

    不知道为什么这么麻烦?即使输入主题是按(clientId,userId)分区的,键仍然是(clientId,userId,eventId),并且在存储中使用完整键。

    推荐文章