用于大数据文件和流的数据库

时间:2018-02-05 14:41:29

标签: database mongodb hadoop bigdata

我有一个“数据库选择”和arhitecture问题。

使用例

  1. 客户将上传大型.json文件(或其他格式,如.tsv,这是无关紧要的),其中每一行都是有关其客户的数据(例如姓名,地址等)。
  2. 我们稍后需要流式这些数据来处理它和存储结果,这也是一些大型文件,其中每行是关于每个客户的数据(大致相同)上传的文件)。
  3. 我的要求

    1. 流媒体应尽可能快(例如> 1000 rps),我们可以并行运行多个进程(针对多个客户端)
    2. 数据库应具有可扩展性和容错能力。因为可以很容易地上传大量的GB数据,所以如果存储空间不足,我应该很容易实现自动添加新的商品实例(使用AWS)。

    3. 数据库应该有一种复制方式,因为我们不想丢失数据。

    4. 由于我们只是流式传输数据,因此无需索引。

    5. 对于这个问题,您对数据库有什么建议?我们尝试将其上传到Amazon S3并让它们处理缩放等问题,但是存在读取/流式传输速度慢的问题。

      谢谢, 伊万

1 个答案:

答案 0 :(得分:0)

最初将文件上传到S3是可以的,但是先将它们拾取,然后将每一行都推送到Kinesis(如果需要,也可以将其推送到EC2上的Kafka);从那里,您可以连接您选择的流处理框架(Flink,Spark Streaming,Samza,Kafka Streams,Kinesis KCL)进行转换和扩充,最后您需要将结果通过管道传递到存储堆栈中允许流附加。一些明显的候选人:

  • HBase
  • 德鲁伊
  • 麒麟
  • Hoodie位于S3之上

您选择的哪一种在查询灵活性,延迟,集成选项/标准等方面都能满足下游需求。