本文要点
- Azure 数据湖分析与数据湖存储是微软Azure 数据湖解决方案中的关键组件。
- Azure 数据湖分析当前只适用于批处理工作负载。对于流数据处理和事件处理工作负载,可使用Azure提供的其它数据分析解决方案,例如HDInsight、Azure Databricks等。
- Azure 数据湖分析提供了一种新的大数据查询和处理语言,称为U-SQL。
- U-SQL结合了SQL和C#的理念和结构。U-SQL强大之处来自于SQL的简单和声明性本质,以及C#提供的具有丰富类型和表达式的编程能力。
- U-SQL提供了模式化视图,可操作存储在文件中的非结构化数据。与由关系数据库管理的结构化数据非常类似,U-SQL也提供了通用的元数据目录系统。
目前大数据和Hadoop技术已历经十多年的发展,大数据和大数据分析受到前所未有的重视。Hadoop的最初版本仅支持批处理工作负载,现在Hadoop生态已具有处理结构化数据、流数据、事件处理、机器学习等工作负载以及处理图数据的工具。
尽管Hadoop生态中具有大量的工具,提供了完整的特性集,例如Hive、Impala, Pig、Storm和Mahout等。但Spark等新兴数据分析工具的出现,为处理多类型复杂工作提供了集成解决方案。
Azure 数据湖分析(简称ADLA)是一种新推出的大数据分析引擎。ADLA是由微软Azure cloud完全托管和提供的按需分析服务。ALDA与Azure 数据湖存储及HDInsight一并形成了微软基于云的数据湖和分析工具集。ADLA提供了一种新的大数据查询和处理语言,称为U-SQL。下面本文将介绍U-SQL语言,以及如何在应用中使用该语言。
Azure 数据湖
Azure 数据湖是微软基于Azure公有云提供的数据湖工具集,其中包括多种服务,涉及数据存储、数据处理、数据分析,以及NoSQL存储、关系数据库、数据仓库和ETL工具等相关配套服务。
数据存储服务
- Azure 数据湖存储(简称ADLS):一种基于开放HDFS标准的可扩展云存储,针对数据分析应用。
- Azure Blob Storage:一种用于Azure的通用托管对象存储。
数据分析和处理服务
- Azure 数据湖分析(简称ADLA):一种Azure云上的完全托管按需分析服务。ADLA不仅支持.NET、R和Python语言,还支持一种称为U-SQL的全新大数据处理语言。
- HDInsight:运行在Azure云上,提供基于Hortonworks Data Platform(HDP)Hadoop发行版的托管Hadoop集群。HDInsight支持包括Spark、Hive、Map Reduce、HBase、Storm和Kafka等多种Hadoop生态系统工具。
- Azure Databricks:一种基于Azure Spark的托管无服务器分析服务。其提供Jupyter/ iPython/Zeppelin等风格的Notebook交互特性,并支持Scala、Python、R和SQL等语言。
配套服务
- Cosmos DB:Azure上托管的无服务器数据库服务,提供多模NoSQL服务。
- Azure SQL Database:Azure上托管的关系数据库即服务(DBaaS)
- Azure SQL Datawarehouse:基于云的企业数据仓库(EDW,Enterprise Data Warehouse)服务。它使用了为用户熟知的分布式系统和数据仓库理念,例如MPP、列存储、压缩等,确保了服务对复杂查询的高性能。
- Azure Analysis Service :Azure上完全托管的数据分析引擎,用于构建云上的语义模型。它基于为用户熟悉的SQL Server Analysis Server(基于SQL Sever的本地部署分析引擎)构建。目前,Azure Analysis Servives仅支持二维表模型,不支持多维模型(即数据立方体)。
- Azure Data Factory:一种基于云的无服务器ETL和数据集成服务,为50多种云和本地部署系统与服务提供开箱即可用的连接器,包括Azure Blob Storage、Cosmos DB、Azure SQL Database,以及本地部署的SQL Server、MySQL、PostgreSQL数据库,甚至支持SFDC、Dropbox等第三方服务。它实现了数据在云服务器间的移动,并支持数据在本地部署系统和云间的相互移动。
图1给出了微软在Azure Cloud上提供的各种云服务。