批量、历史数据通道
Tunnel是MaxCompute向用户提供的数据传输服务。该服务水平可扩展,支持每天TB/PB级别的数据导入导出。特别适合于全量数据或历史数据的批量导入。Tunnel提供了Java SDK,并且在MaxCompute的客户端工具中,有对应的命令实现本地文件与服务数据的互通。
实时、增量数据通道
另一方面,针对实时数据上传的场景,MaxCompute提供了另一套名为DataHub的服务。该服务具有延迟低、使用方便的特点,特别适用于增量数据的导入。Datahub还支持多种数据传输插件,例如:Logstash、Flume、Fluentd、Sqoop等。同时支持日志服务Log Service中的日志数据的一键投递至MaxCompute,进而利用大数据开发套件进行日志分析和挖掘。
SQL
MaxCompute SQL采用标准的SQL语法,兼容部分Hive语法。在语法上和HQL非常接近,熟悉SQL或HQL的编程人员都容易上手。另外MaxCompute提供更高效的计算框架支持SQL计算模型,执行效率比普通的MapReduce模型更高。需要注意的是,MaxCompute SQL不支持事务、索引及Update/Delete等操作。
MapReduce
MaxCompute提供的Java MapReduce编程模型。值得注意的是,由于MaxCompute并没有开放文件接口,用户只能通过它所提供的Table读写数据,因此MaxCompute的MapReduce模型与开源社区中通用的MapReduce模型在使用上有一定的区别。我们相信,这样的改动虽然失去一定的灵活性,例如:不能够自定义排序及哈希算法,但却能够简化开发流程,免除很多琐碎的工作。更为重要的是,MaxCompute还提供了基于MapReduce的扩展计算模型, 即MR2。在该模型下,一个Map函数后,可以接入连续多个Reduce函数。
Graph
对于某些复杂的迭代计算场景,例如:K-Means,PageRank等,如果仍然使用MapReduce来完成这些计算任务将是非常耗时的。MaxCompute提供的Graph模型能够非常好的完成这一类计算任务。