当前位置: 首页 > 知识库问答 >
问题:

通过Kafka压缩主题实现GDPR合规性

柳浩大
2023-03-14

我想问你们一些关于阿帕奇·Kafka和压缩主题的问题。我们想提供一些Kafka压缩主题的PII数据。我们想通过墓碑删除这个主题的数据。目前有多个问题需要验证我们的假设:

  1. 有没有其他公司像KIP-354那样通过压缩主题和墓碑生成来满足Kafka的gdpr要求(忘记的权利)https://cwiki.apache.org/confluence/display/KAFKA/KIP-354:添加最大日志压缩延迟
  2. 我们的假设正确吗?只有当记录不在活动段文件中时,才会触发压缩。因此,在我们看来,Kafka文档需要修改,将其添加到Kafka文档第4.8点:主题的最大压缩。缓慢移动ms可用于保证从写入消息到消息符合压缩条件之间的最大延迟。在这里,它应该添加一个条件,即我们要压缩的消息不应该在活动段文件中。这是最大压缩的错误吗。缓慢移动ms功能还是按设计?我们现在还不确定
  3. 压缩是否仅在插入新消息后触发?或者是否还有一个异步过程来压缩非活动段文件

感谢您的回答;-)

共有1个答案

蒲魁
2023-03-14

你说得很对。

  1. 压缩Kafka主题中的消息删除或多或少与删除数据库中的一行相同。只是不会在发送墓碑消息后立即发生。
  2. 是的,活动日志段没有压缩。如果您想加速这个特定主题的压缩过程(为了满足第1点),您可以将最大段大小(segment.bytes,默认为1GB)和最大段MS(segment.ms,默认为604800000 = 1周)减少到一些较低的值,例如100MB和1。您应该查看min.cleanable.dirty.ratio并将其设置为更激进的值,这同样取决于要求(第1点)。
  3. 压缩是异步进行的,墓碑之后是否发送了任何消息都无关紧要。每个Kafka、代理、LogCleaner上都运行一个组件,负责执行此操作。
 类似资料:
  • 我收到了一个数据库更改流,这些更改最终形成了一个压缩的主题。流基本上是键/值对,并且键空间很大(~4 GB)。 这个主题由一个kafka流进程使用,该进程将数据存储在RockDB中(每个消费者/碎片单独使用)。处理器做两件不同的事情: 将数据连接到另一个流中。 检查来自主题的邮件是新密钥还是对现有密钥的更新。如果是更新,则将旧的键/值和新的键/值对发送到不同的主题(更新很少)。 null

  • 我在《掌握Kafka Streams and ksqlDB》一书中遇到了以下两个短语,作者使用了两个术语,它们的真正含义是“压缩主题”和“未压缩主题” 他们对“日志压缩”有什么看法吗? 表可以被认为是对数据库的更新。在日志的这种视图中,只保留每个键的当前状态(给定键的最新记录或某种聚合)。表通常是从压缩的主题构建的。 用数据库的说法,流可以被视为插入。每个不同的记录都保留在此日志视图中。流通常是从

  • 我使用的是Debezium,它制作了Kafka Connect。Kafka Connect公开了几个需要创建的主题: OFFSET_STORAGE_TOPIC运行Kafka Connect服务时需要此环境变量。将此设置为Kafka主题的名称,其中Kafka Connect服务组存储连接器偏移。主题应该有许多分区,高度重复(例如,3倍或更多),并且应该为压缩进行配置。 STATUS_STORAGE_

  • 只是关于Kafka的后续问题-未压缩主题与压缩主题 正如那里所说, 用数据库的说法,流可以被视为插入。每个不同的记录都保留在此日志视图中。流通常是从未压缩的主题构建的。 作为最佳实践,关于未压缩主题的语义,是否应禁用要在日志启用程序中取消压缩的主题,以便不会发生压缩(清理),其属性如下: 日志清洁工enable=false或log。清洁工启用=true(默认),清除策略为“delete”(默认)

  • 我们想通过spring-kafka列出所有Kafka主题,以获得类似于kafka命令的结果: 在下面的服务中运行 getTopics() 方法时,我们会得到 配置: 服务: Kafka已经启动并运行,我们可以成功地从应用程序向主题发送消息。

  • 在我们的docker-swarm中运行kafka connect,使用以下撰写文件: kafka connect节点成功启动,我可以设置任务并查看这些任务的状态······ 我是否在撰写文件或任务配置中缺少某些配置?