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

如何在Azure云上加入带有普通文件缓存的Kafka KStream?

佟涵畅
2023-03-14

我正在开发一个日志丰富Kafka流工作。我们的计划是使用Azure Blob上的文件缓存来丰富Kafka KStream中的日志条目。我的理解是,我必须将缓存文件从Azure Blob加载到一个KTable。然后我就可以将KStream与ktable连接起来。

作为一个新手,我遇到了两个困难,谁能给我一些提示吗?

>

  • 看起来Kafka Connect没有连接到Azure Blob的lib。我是否必须编写另一个单独的作业来始终从Azure读取并回写到Ktable?有什么快捷的方法吗?

    缓存每天更新四到五次,作业需要检测缓存文件的变化并反映在KTABLE中。为了检测缓存文件中是否删除了一些条目,是否意味着我必须及时比较KTable和文件中的每个条目?还有更有效的方法吗?

    谢谢

  • 共有1个答案

    吴凯泽
    2023-03-14

    有多种方法可以解决这一问题。您需要意识到的第一件事是,如果要将数据读入ktable中,首先需要将其放入Kafka主题中。

    如果没有连接器,您可以编写自己的连接器(https://docs.confluent.io/current/connect/devguide.html)。另一种方法是编写一个小应用程序,从Azure读取数据,并使用kafkaProducer写入主题。

    对于更新ktable,您不需要从Kafka Streams的角度考虑这个问题。如果在主题中写入了新数据,则ktable将自动更新。如果您编写自己的连接器,这也将确保对文件的更新将自动传播到主题中。如果您编写自己的应用程序,您将需要确保该应用程序将更改写入主题。

     类似资料:
    • 我有大约6个设置文件(xml或json ),我想存储在Azure中,但在我的Windows客户端应用程序中使用。我计划将它们存储在blob存储中,并使用以下代码下载它们: 设置文件不会经常更改。如何在本地缓存文件,以避免每次下载? 有更好的方法吗?我应该使用的其他Azure服务?

    • 我正在使用Dropzone.js将文件上传到Azure云存储桶中。 这些文件正在上传到bucket,但当我下载它们时,它们已经损坏了。 我到处都找过了。我没有上传在块,一切似乎都在那里,但无论什么类型的文件我上传,它是破坏与我重新下载它。

    • 我有一个谷歌云存储(GCS)桶标记为公共。我使用v4签名的URL将图像上传到这个公共桶。我可以通过HTTP头看到GCS缓存图像长达1小时。但是,当我上传相同图像的较新版本(具有相同的文件名)时,GCS不会使缓存无效,仍然为这些图像的较旧版本服务。当这些映像的较新版本上载到GCS时,如何确保缓存无效?必须使用v4签名的URL。

    • 在Python(2.7)中,我想在一个文件中创建几个变量。然后在其他文件中使用这些变量。没有任何类或函数。只是从不同的文件中访问这些变量。 对于包含变量的文件(可能是这样的)是如何实现的? 变量。派克 然后在一个想要使用这些变量的文件中? 文件1。派克

    • 我的网站文件托管在Google Cloud Storage,每次我更新一个文件(比如。png或。xml)时,我总是要等一段时间才能看到新文件出现在我的页面上。 有没有办法覆盖单个对象的默认缓存设置(max-age=3600)?尝试用“no store”、“no cache”、“max-age=0”编辑“cache-control”元数据,但它们似乎都不起作用,仍然在响应头中获得“cache-con

    • 问题内容: 我正在html 5模式下使用angularjs。似乎可以控制页面上的所有href。但是,如果我想链接到该应用程序同一域中的某个内容,但实际上不在该应用程序中,则该怎么办?一个示例是pdf。 如果我做的角度会尝试使用html5mode并使用路由提供程序来确定应该加载哪个视图。但是我实际上希望浏览器以常规方式转到该页面。 唯一的方法是与路由提供者制定规则,并使用window.locatio