批量、歷史數據通道
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模型能夠非常好的完成這一類計算任務。