【发布时间】:2018-10-16 02:15:23
【问题描述】:
我必须将数据(以 CSV 或 TSV 的形式)从 Amazon S3 存储桶中的某个路径加载到一些 MemSQL 表中。将来可能需要从 Azure Blob 存储加载数据。我知道有两种方法可以做到:
- MemSQL 管道
- MemSQL 加载程序(已弃用)
以下是需要考虑的两种方法的优缺点:
MemSQL 管道 - 如果我们手动创建管道,它会自动继续工作。但是,保持管道始终处于运行状态会浪费系统资源(RAM)。此外,包含要在 MemSQL 中加载的数据的新文件将仅在一天中的特定时间(通过某些 cron 作业)添加到 S3。因此,如果管道不存在,我想以编程方式创建管道(使用 JDBC),启动管道,然后在成功加载所有数据后停止它(如果在此过程中也处理错误)。此过程将作为每日 cron 作业运行。 但是我找不到任何方法来知道所有数据是否已同步。我也找不到任何好的方法来知道这个过程中是否发生了任何错误。
MemSQL Loader - MemSQL 加载器在完成加载所需数据后会发送状态。因此,我可以在 cron 作业中执行上述作业。但是,由于 MemSQL 加载器现在已被弃用,所以我不想使用它。
请建议将数据加载到 MemSQL 表的最佳方法。另外,如果还有其他方法可以做到这一点,请告诉我(除了管道和加载器)。
提前致谢。
【问题讨论】:
-
鉴于一个已弃用,而另一个未弃用,您的选择应该很明确...使用未弃用的那个。
-
@MarkRotteveel 对于 MemSQL 管道,我还说:“我找不到任何方法来知道所有数据是否同步。我也找不到任何好的方法来知道是否有过程中发生错误”。请帮我解决这个问题。
标签: java jdbc amazon-s3 azure-blob-storage singlestore