我有一个需求,需要构建一个互动聊机机器人来回答用户的查询。
我们从不同的源系统获取不同的源文件,并在Google Cloud Storage上的CSV文件中维护文件到达和处理的时间日志。每30分钟生成一个CSV文件,记录任何新到达并存储在GCP上的文件的日志。
用户通过邮件不断询问文件是否到达、哪些文件尚未到达等问题。
如果我们能制作一个能够读取GCS上的CSV数据并回答用户查询的聊机机器人,这将在响应时间方面提供极大的帮助。
这可以通过聊机机器人实现吗?
如果可以,请推荐最合适的工具/编程语言来实现这一目标。
回答:
您可以用几种方式实现您的需求。这完全取决于您对响应时间和CSV文件大小的要求
-
使用BigQuery和外部表(也称为联合表)。在定义时,您可以选择GCS中的文件(或文件模式),如CSV文件。然后您可以使用简单的SQL查询来查询数据。此解决方案便宜且易于部署。但BigQuery有延迟(取决于您的文件大小,但可能需要几秒钟)
-
使用Cloud Function和Cloud SQL。当生成新的CSV文件时,在这个事件上挂接一个函数。该函数解析文件并将数据插入到Cloud SQL中。请注意,函数最多可以运行9分钟,并且最多可以分配2Gb。如果您的文件太大,您可能会突破这些限制(时间和/或内存)。主要优势在于延迟(设置正确的索引,您的查询可以在毫秒内得到回答)
-
什么都不用!在履行端点获取您的CSV文件,解析它并找到您想要的内容。然后释放它。在这里,您什么都不做,但延迟非常糟糕,处理量巨大,您必须重复文件下载和解析,…这是一个丑陋的解决方案,但如果您的文件在内存中不太大,它可以工作
我们还可以想象使用Dataflow的更复杂的解决方案,但我觉得这不是您的目标。