apache-spark - DMP系统的技术堆栈选择

标签 apache-spark hadoop apache-flink druid kylin

我们的DMP系统有这样的需求:
1.受众导出:基于标签的受众每天需要将新的人口统计结果导出到Redis或文件,再导出到DSP。因为标签数据每天都会刷新,所以我们有6亿用户,当我们有成千上万的人时,我们应该选择哪种技术堆栈来快速计算和导出?
2.事件分析:我们还需要基于实时事件来创建受众群体,我们需要向受众群体中添加合格的人员。与此同时,随着时间的流逝,需要将不符合要求的人员移除。
有一个合适的技术堆栈建议可以满足一个或两个。

谢谢。

最佳答案

我们与DMP的受众数据进行了广泛的合作,并且通常管理许多PB的数据和数百个受众。

由于以下原因,我建议使用Apache Spark进行处理:

  • 编程模型的灵活性。
  • DMP工作流程中批处理的普遍性。
  • 常规观众大小的高性能(它们适合RAM)。
  • 最广泛的集成集,包括与ML功能的集成,这些集成对于DMP变得越来越重要。

  • 存储是一个更复杂的问题:
  • 对象存储(S3)是最简单但性能最好的存储。
  • 在许多情况下,HDFS风格的存储速度更快,但成本更高。
  • 设置受众群体后,根据受众群体更新的性能需求,您还可以考虑使用键值存储,例如Cassandra。

  • 希望这可以帮助。

    关于apache-spark - DMP系统的技术堆栈选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58915384/

    相关文章:

    hadoop - 分布式部署Hadoop程序

    hadoop - ElasticSearch 与 Hadoop 数据重复问题

    hadoop - 插入到配置单元分区表中 SemanticException

    scala - Flink 无法序列化 Scala 类/任务不可序列化

    scala - 在 Scala 中调用 collect() 函数时出现异常

    apache-spark - 如何增加处理Spark Streaming/Kafka中某个阶段的执行者数量?

    java - 如何为 Kafka 2.2 实现 FlinkKafkaProducer 序列化器

    apache-flink - Apache Flink : Why to choose the MemoryStateBackend over the FsStateBackend?

    amazon-web-services - 如何将Hive表从Hadoop Datalake导入到AWS RDS?

    scala - 何时使用 "sbt assembly"和 "sbt compile && sbt package"?