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

使用Apache Beam在导入和全局数据库中查找副本

田嘉慕
2023-03-14

这些文件将由外部用户通过web表单上传。当过程完成时,需要通知用户,并且他/她必须能够下载结果。

此外,为了解决这个任务,我需要评估Apache Beam是否适合这个任务。

我在考虑以下问题:导入文件被上传到S3,管道要么作为pub-sub事件(Kafka队列)获取文件位置,要么查看S3(如果可能的话)是否有传入文件。

    null

共有1个答案

郝原
2023-03-14

这种方法有意义吗--对于BEAM来说是惯用的吗?

这是一个主观的问题。一般来说,我会说不,这不是Apache Beam的惯用方法。Apache Beam是一个定义ETL管道的框架。Beam编程模型没有用于删除重复数据的意见或构建功能。重复数据删除是通过实现(您编写的业务逻辑代码)或数据存储的特性(唯一约束,在SQL或键/值存储中选择DISTINCT)来实现的。

Beam是否适合这种处理?

是的,Beam是合适的。

对以上有何改进建议?

我不建议在管道的中间写入搜索索引。通过这样做,然后尝试在下面的转换中读回数据,您实际上已经在DAG中创建了一个循环。管道可能受到竞争条件的影响。有两个独立的管道就不那么复杂了--一个写到搜索索引(重复数据删除),另一个写回S3。

我需要跟踪文件名/ID,以便在最后通知用户。如何通过管道移动此元数据。我是否需要为元数据和有效负载创建一个“信封”对象,并在我的pCollection中使用该对象?

是的,这是一种方法。我相信您可以通过ReadableFile类获得文件元数据。

传入的文件是无界的,但文件内容本身是有界的。有没有一种方法可以用惯用的方式找出文件处理的结束?

 类似资料:
  • 问题内容: 简而言之,问题 是 : 有没有一种方法可以防止Python在当前作用域之外查找变量? 细节: 如果在当前作用域中未定义变量定义,Python将在外部作用域中查找它们。因此,这样的代码在重构过程中如果不小心,很容易中断: 如果我重命名了函数参数,但忘了在函数体内重命名它们,代码仍将运行: 我知道从外部范围中隐藏名称是一种不好的做法。但是,无论如何都有一些原因: 有时使用相同的名称可能很有

  • 问题内容: 以下是导入和导出SQLite数据库的工作方法。它的工作在除Android Pie外的所有android版本中都可以正常工作。当我尝试导入Android Pie时,它显示成功的Toast,但未还原数据库。谁能帮我解决Android Pie(API 28)问题。 我对文件系统没有太多经验。因此,举个例子会很有帮助。 问题答案: 在Android Pie +中,SQLite已更改为默认设置,

  • 问题内容: 我正在尝试编写脚本来导入数据库文件。我编写了脚本来导出文件,如下所示: 现在,我希望能够导入该数据库。我试过了 : 但是我不允许执行多个语句。有没有办法让它直接运行SQL脚本? 问题答案: 文件资料。

  • 问题内容: 我被要求使用php脚本而不是phpmyadmin创建一个将其结构和数据导出并导入mysql数据库的.sql文件,以使用户能够备份其数据? 有人知道该怎么做吗? 提前致谢 问题答案: http://www.php-mysql-tutorial.com/wikis/mysql-tutorials/using-php-to-backup- mysql-databases.aspx 要么 要么

  • 我正在尝试创建一个表: create表格生成DATE raw(255)not null,我需要它是DATE,我读入它并试图创建一个转换器: 但一切都没有改变,我错过了什么?