架构师的信仰系列文章,主要介绍我对系统架构的理解,从我的视角描述各种软件应用系统的架构设计思想和实现思路。
从程序员开始,到架构师一路走来,经历过太多的系统和应用。做过手机游戏,写过编程工具;做过大型Web应用系统,写过公司内部CRM;做过SOA的系统集成,写过基于Hadoop的大数据工具;做过外包,做过电商,做过团购,做过支付,做过SNS,也做过移动SNS。以前只用Java,然后学了PHP,现在用R和Javascript。最后跳出IT圈,进入金融圈,研发量化交易软件。
架构设计就是定义一套完整的程序规范,坚持架构师的信仰,做自己想做的东西。
前言
当前微软基于Azure云服务有3个基础认证,分别是AZ-900,AI-900和DP-900。AZ-900是对于Azure云计算的产品和框架的学习,AI-900是对于Azure上认识服务(AI服务)的产品和框架的学习,DP-900则是对于Azure上数据库的产品和框架的学习。掌握了这3个方向知识,对于Azure上的云服务就能吃透了。不得不说,微软Azure的产品体系真是强大。
关于AZ-900和AI-900的考试详细介绍,请参考文章 AZ-900认证考试攻略 和 AI-900认证考试攻略 。
目录
考试契机
学习路径
复习准备
- 考试契机
考过了AZ-900和AI-900后,突然认识到了,产品的规划如此重要。之前,一直在穷尽脑汁,设计自己公司的产品。当看到远方“巨人”已经早已设计好了数据产品的路线,果断放弃闭门造车的想法,向行业的领头者学习。只有具备了相同的视野,才有自己发展的机会。所以,DP-900的契机,是自我认知的一个冲动,跟上巨人的脚步。
DP-900的认证目标,掌握云环境中数据处理和数据库使用的基本知识,区别关系型数据库与非关系型数据库数据结构的区别和对应该产品。
DP-900的工作角色包括DBA,数据工程师和数据分析师。DP-900关于数据基础知识,也可用于准备其他基于Azure角色的认证,如Azure数据工程师助理[DP-200 / DP-201],Azure数据科学家助理[DP-100]和Azure数据库管理员助理[DP-300] ,但这不是任何这些考试的先决条件。
微软认证体系:AZ-900,AI-900和DP-900是Azure基础级认证,它们构成了助理和专家级认证的基础,可以帮助我们建立知识并熟悉Azure的工作环境。
考试完成后,会获得一份考试能力评估表,来告诉你哪部分做的好,哪部分做的不好。我考试的能力评估表:我考了882分(700通过),总体来说还是不错的成绩。
然后,就获得的证书电子版的证书 Microsoft Certified: Azure Data Fundamentals。
最后,可以linkedin上面自动同步证书,我的linkedin:https://www.linkedin.com/in/bsspirit/
- 学习路径
Microsoft Certified: Microsoft Azure Data Fundamentals ,DP-900认证考试是Azure Data 的数据平台的认证,包括数据库设计,关系型数据,非关系型数据,数据仓库的多种数据基础知识,主要涉及4大部分内容。
Azure 数据基础知识探究核心数据概念 (15-20%)
了解 Azure 中的关系数据(25-30%)
了解 Azure 中的非关系数据 (25-30%)
了解 Azure 中的新式数据仓库分析 (25-30%)
微软docs上,给出了DP-900完整的学习路径,https://docs.microsoft.com/zh-cn/learn/certifications/exams/dp-900
学习大纲:
第一部分:Azure 数据基础知识探究核心数据概念
了解云环境中数据库概念的基础知识,掌握云数据服务的基本技能,并建构 Microsoft Azure 中云数据服务的基础知识。 你将确定并描述核心数据概念(如关系、非关系、大数据和分析),并探索如何通过 Microsoft Azure 实现该技术。 你将探究数据世界中的角色、任务和责任。
1.1 探究核心数据概念
1.2 了解数据世界中的角色和职责
1.3 描述关系数据的概念
1.4 探索非关系数据的概念
1.5 探索数据分析的概念
第二部分:了解 Azure 中的关系数据
了解云环境中数据库概念的基础知识,掌握云数据服务的基本技能,并建构 Microsoft Azure 中云数据服务的基础知识。 你将了解关系数据产品/服务,通过 Microsoft Azure 的云数据解决方案预配和部署关系数据库并查询关系数据。
2.1 了解 Azure 中的关系数据产品/服务
2.2 了解如何在 Azure 中预配和部署关系数据库产品/服务
2.3 在 Azure 中查询关系数据
第三部分:了解 Azure 中的非关系数据
了解云环境中数据库概念的基础知识,掌握云数据服务的基本技能,并建构 Microsoft Azure 中云数据服务的基础知识。 你将了解非关系数据产品/服务,通过 Microsoft Azure 预配和部署非关系数据库以及非关系数据存储。
3.1 了解 Azure 中的非关系数据产品/服务
3.2 了解如何在 Azure 中预配和部署非关系数据服务
3.3 管理 Azure 中的非关系数据存储
第四部分:了解 Azure 中的新式数据仓库分析
了解云环境中数据库概念的基础知识,掌握云数据服务的基本技能,并建构 Microsoft Azure 中云数据服务的基础知识。 你将了解 Azure 中用于构建数据分析解决方案的处理选项。 你将探索 Azure Synapse Analytics、Azure Databricks 和 Azure HDInsight。
4.1 检查新式数据仓库的组件
4.2 探索 Azure 中的数据引入
4.3 了解 Azure 中的数据存储和处理
4.4 开始使用Power BI进行构建
学习的内容很有意思,与我目前的工作有大量的交集。我们在做数据分析时,会接触到各种不同的数据源,有些是结构化的业务数据,有些是非结构化的文字或地图,有些表数据量巨大需要离些计算,模型训练完成后,又需要与作业系统对接,实时在线处理等。通过本次的学习,一方面可以加强概念理解,另一方面也可以有机会尝试用利用微软的产品,来完成复杂的机器学习的任务。
- 复习准备
虽然,微软docs已经有了完整的学习大纲,真学起来还是要花点时间的,重点就在于名词解释和在Azure的不同数据库的不同特性。
3.1 名字解释
下面开始,名词解释:
Azure上的数据存储:
Azure File Storage, 是一个通过 Server Message Block (SMB) 协议提供云端文件共享的服务。通过 File Storage 共享的文件能够被加载为云端或本地主机的磁盘,应用程序可以通过文件 API 像访问本地文件一样访问这些文件。
Azure Disk Storage,Azure 托管磁盘是由 Azure 托管并与 Azure 虚拟机配合使用的块级存储卷。托管磁盘类似于本地服务器中的物理磁盘,但它是虚拟化的。使用托管磁盘时,只需指定磁盘大小、磁盘类型并预配磁盘即可。预配此磁盘后,Azure 会处理剩余磁盘。
Azure Blog Storage,Azure Blob 存储是 Microsoft 提供的适用于云的对象存储解决方案。Blob 存储最适合存储巨量的非结构化数据。非结构化数据是不遵循特定数据模型或定义的数据(如文本或二进制数据)。
Azure Data Lake Storage, 数据湖是用于存储大量原始数据的存储库。 由于数据原始且未经处理,因此其加载和更新速度非常快,但数据并未采用适合高效分析的结构。 可以将数据湖看作是在引入数据进行修改并转换为适合执行分析的格式前的暂存点。 Azure Data Lake Storage 本质上是 Azure Blob 存储的扩展,组织为近乎无限大的文件系统,采用传统文件系统的分层目录结构和文件系统语义,同时具备 Azure 提供的安全性和可伸缩性。
Archive,存档,Azure存储提供了不同的访问层,允许以最具成本效益的方式存储 Blob 对象数据。可用的访问层包括:热:适用于存储经常访问的数据。冷:适用于存储不常访问且存储时间至少为 30 天的数据。存档:适用于存储极少访问、存储时间至少为 180 天且延迟要求(以小时计)不严格的数据。
Azure Data Factory,数据工厂被描述为一项数据集成服务。 Azure 数据工厂的用途是从一个或多个数据源中检索数据,并将其转换为你可处理的格式。 数据源可能以不同的方式呈现数据,并且包含需要筛选掉的干扰词。Azure 数据工厂使你可以提取感兴趣的数据,并放弃其余数据。
Azure 数据工厂由以下关键组件组成,这些组件组合起来提供一个平台,供你在上面编写数据驱动型工作流。
管道:数据工厂可以包含一个或多个管道。 管道是执行任务单元的活动的逻辑分组。 管道中的活动可以共同执行一项任务。 例如,一个管道可能包含一组活动,这些活动从 Azure Blob 引入数据,然后在 HDInsight 群集上运行 Hive 查询,以便对数据分区。这样做的好处是,可以通过管道以集的形式管理活动,不必对每个活动单独进行管理。 管道中的活动可以链接在一起来按顺序执行,也可以独立并行执行。
活动:活动表示管道中的处理步骤。 例如,可以使用复制活动将数据从一个数据存储复制到另一个数据存储。 同样,可以使用在 Azure HDInsight 群集上运行 Hive 查询的 Hive 活动来转换或分析数据。 数据工厂支持三种类型的活动:数据移动活动、数据转换活动 和 控制活动。
数据集:数据集代表数据存储中的数据结构,这些结构直接指向需要在活动中使用的数据,或者将其作为输入或输出引用。
链接服务:链接服务十分类似于连接字符串,用于定义数据工厂连接到外部资源时所需的连接信息。 链接服务定义到数据源的连接,而数据集则代表数据的结构。链接服务包括,创建链接服务,数据存储链接服务和计算链接服务。
集成运行时:集成运行时 (IR) 是 Azure 数据工厂用于在不同的网络环境之间提供以下数据集成功能的计算基础结构:包括 数据移动,活动分派 和 SSIS包执行。数据移动:跨公用网络中的数据存储和专用网络中的数据存储复制数据。 它提供对内置连接器、格式转换、列映射以及性能和可扩展数据传输的支持。活动分派:分派和监视在各种计算服务(如 Azure HDInsight、Azure SQL 数据库、SQL Server 等等)上运行的转换活动。SSIS 包执行:在托管的 Azure 计算环境中本机执行 SQL Server 集成服务 (SSIS) 包。
数据仓库:数据仓库是来自一个或多个不同源的集成数据的集中存储库。数据仓库存储当前和历史数据,并用于报告和分析数据。为了将数据移入数据仓库,需要从包含重要业务信息的各种来源中定期提取数据。随着数据的移动,可以对其进行格式化,清理,验证,汇总和重组。
Azure上的数据工具:
Azure Databrick, 是在 Azure 上运行的 Apache Spark 环境,可提供大数据处理、流式传输和机器学习功能。 Apache Spark 是一个高效的数据处理引擎,可以非常快速地使用和处理大量数据。 有许多 Spark 库,可用于执行 SQL 处理、聚合等任务,还可以用于基于你的数据生成和训练机器学习模型。Azure Databricks 还支持结构化流处理。 在此模型中,Databricks 以增量方式执行计算,并在流数据到达时持续更新结果。
Azure Synapse Analytics, 是一个分析引擎,类似于Hadoop 它旨在极快速地处理大量数据,Azure Synapse Analytics 利用大规模并行处理 (MPP) 体系结构。使用 Synapse Analytics,你可以从外部源(如平面文件、Azure Data Lake 或其他数据库管理系统)引入数据,然后将此数据转换并聚合为适合分析处理的格式。 你可以对此数据执行复杂的查询并生成报表、图和图表。Azure Synapse Analytics 支持两种计算模型:SQL 池和 Spark 池。
Azure Synapse link 是一种云原生混合事务和分析处理 (HTAP) 功能,使用该功能可以对 Azure Cosmos DB 中存储的操作数据进行准实时分析。
Synapse Studio,是一个 Web 界面,使用该界面可以以交互方式创建池和管道。 使用 Synapse Studio 可以开发、测试和调试 Spark 笔记本和 Transact-SQL 作业。
Polybase,用于导入外部数据源数据,如Hadoop , Azure Blob, SQL Server、Oracle、Teradata 和 MongoDB 中的外部数据, 类似于sqope。
Azure HDInsight,是一项大数据处理服务,它在 Azure 环境中提供使用 Spark 等技术的平台。 HDInsight 实现了在一组计算机之间分发处理的群集模型。 此模型与 Synapse Analytics 所使用的模型相似,不同之处在于节点运行的是 Spark 处理引擎而不是 Azure SQL 数据库。
大数据架构,大数据体系结构旨在处理对于传统数据库系统而言太大或太复杂的数据的提取,处理和分析。大数据解决方案通常涉及以下一种或多种类型的工作负载:静态处理大数据源,实时处理运动中的大数据,交互式探索大数据,预测分析和机器学习。
批量处理,常见的大数据场景是静态数据的批处理。源数据可以通过源应用程序本身或业务流程来加载到数据存储中。然后,数据由并行作业就地处理,该作业也可以由业务流程启动。在将转换后的结果加载到分析数据存储中之前,该处理可以包括多个迭代步骤,可以由分析和报告组件进行查询。
实时处理,实时处理处理实时捕获的数据流,并以最小的延迟对其进行处理,以生成实时(或近实时)报告或自动响应。例如,实时流量监控解决方案可能使用传感器数据来检测高流量。该数据可用于动态更新地图以显示拥堵,或自动启动高占用车道或其他交通管理系统。
ETL过程,提取,转换和加载。一个普遍问题是如何从多种来源以多种格式收集数据,并将其移至一个或多个数据存储中。目标可能不是与源相同的数据存储类型,并且通常格式不同,或者在将数据加载到最终目标之前需要对数据进行整形或清除。
提取(Extract):数据抽取是指把操作性数据(ODS)源数据抽取到数据仓库(DW)中,然后处理成展示给相关人员查看的数据。
转换(Transform):就是把不需要的和不符合规范的数据进行处理。数据清洗最好不要放在抽取的环节进行,考虑到有时可能会查原始数据。
加载(Load):数据拉取,清洗完之后,就需要展示了。一般是把清洗好的数据加载到数据库中,然后在各系统中使用,或者使用BI直接给相关人员展示
两种数据处理系统:OLAP和OLTP:
OLAP:在线分析处理,是一种组织大型企业数据库并支持复杂分析的技术。它可以用于执行复杂的分析查询,而不会负面影响交易系统。OLAP对于在大量数据上应用聚合计算特别有用。OLAP允许用户将多维数据划分为多个切片,这些切片可以在二维中查看(例如数据透视表),也可以按特定值过滤数据。
OLTP:在线交易处理,使用计算机系统对交易数据的管理称为在线交易处理。OLTP系统记录在组织的日常运营中发生的业务交互,并支持查询此数据以进行推断。交易通常需要是原子的和一致的。原子性意味着整个事务始终作为一个工作单元成功或失败,并且永远不会处于半完成状态。如果事务无法完成,则数据库系统必须回滚作为该事务一部分已经完成的所有步骤。
Gremlin,实现针对 Cosmos DB 的图形数据库接口,图形是数据对象和定向关系的集合。
RU/s,Request Units,请求单位,视为满足对数据库的简单读取请求所需的计算量和 I/O 资源量。 Microsoft 为读取一个包含 10 个字段的 1 KB 文档所需的资源提供大约 1 RU 的度量值。 因此,每秒 1 RU 的吞吐量 (RU/s) 将支持每秒读取单个 1 KB 文档的应用程序。如果你将免费层折扣应用于你的 Cosmos DB 帐户,你将免费获取单个数据库或容器的前 400 RU/s。 对于大多数中小型数据库而言,400 RU/s 的容量已足够。
Azure SQL数据库和Azure SQL托管实例:Azure SQL数据库和SQL托管实例与SQL Server的最新稳定版本共享一个公共代码库。大多数标准SQL语言,查询处理和数据库管理功能都是相同的。注意:Azure SQL托管实例支持,本地的跨数据库事物。
Transparent Data Encryption(TDE),透明数据加密,这种加密称为静态数据加密,即数据和日志文件。为了帮助保护数据库,可以采取以下预防措施:设计一个安全的系统,加密机密资产,在数据库服务器周围建立防火墙。
SQL Server Data Tools(SSDT),面向项目的离线数据库开发工具,用于提供的用于创作,构建,调试和发布数据库项目的功能。可从 Visual Studio 中的“工具”菜单获得。 若要连接到现有的 Azure SQL 数据库实例
Azure Data Studio,数据库管理工具,是一种图形实用工具,用于从桌面创建和运行 SQL 查询,可以连接到本地 SQL Server 数据库、Azure SQL 数据库、PostgreSQL、Azure SQL 数据仓库和 SQL Server 大数据群集。
SQL Server Management Studio(SSMS), 是一种集成环境,用于管理从 SQL Server 到 Azure SQL 数据库的任何 SQL 基础结构。 SSMS 提供用于配置、监视和管理 SQL Server 和数据库实例的工具。 使用 SSMS 部署、监视和升级应用程序使用的数据层组件,以及生成查询和脚本。
Power BI 是一系列的软件服务、应用和连接器,这些软件服务、应用和连接器协同工作,将不相关的数据源转化为合乎逻辑、视觉上逼真的交互式见解。 不管你的数据是简单的 Microsoft Excel 工作簿,还是基于云的数据仓库和本地混合数据仓库的集合,Power BI 都可让你轻松连接到数据源,可视化(或发现)重要信息,并与所需的任何人共享这些信息。Power BI 中的基本构建基块:可视化效果,数据集,报表,仪表板,磁贴.
Dashboard,仪表盘,是通过可视化效果讲述故事的单个页面,常被称为画布。因为它被限制为一页,设计精良的仪表板仅包含该故事的亮点。读者可查看相关报表了解详细信息。
Drill Down,钻取,当视觉具有层次结构时,您可以向下钻取以显示其他详细信息。
关系型数据库的SQL语言:
数据操作语言 (DML), 可以使用 DML 语句来处理关系表中的行。 利用这些语句,你可以检索(查询)数据、插入新行或编辑现有行。 如果不再需要行,也可以删除它们。SELECT 从表中选择/读取行,INSERT 向表中插入新行,UPDATE 编辑/更新现有行,DELETE 删除表中的现有行。
数据定义语言 (DDL),使用 DDL 语句创建、修改和删除数据库中的表和其他对象(表、存储过程和视图等)。CREATE 在数据库中创建新对象,例如表或视图。ALTER 修改对象的结构。 例如,更改表以添加新列。DROP 从数据库中删除对象。RENAME 重命名现有对象。
关系数据库四个特性:原子性、一致性、隔离性和持久性(ACID)。
原子性,确保将每个事务视为单个单位,要么完全成功要么完全失败。 如果构成事务的任何语句无法完成,整个事务都将失败,并且数据库保持不变。 原子系统必须保证每种情况下的原子性,包括电源故障、错误和崩溃。
一致性,确保事务只能将数据库中的数据从一个有效状态转换为另一个有效状态。 一致的数据库绝不应丢失或以无法解释的方式创建数据。 在前面所述的银行转账示例中,如果将资金添加到某个帐户,则必须在某个地方有相应的资金扣除,或者如果资金是从外部收到的,则必须有描述资金来自何处的记录。 不能突然创建(或丢失)资金。
隔离性,确保事务的并发执行使数据库处于与按顺序执行事务时相同的状态。 并发进程看不到处于不一致状态的数据(例如,已从一个帐户扣除了资金,但尚未存入到另一个帐户。)
持久性,保证在提交事务后,即使发生系统故障(如停电或崩溃),它仍能保持已提交的状态。
Azure Cosmos DB的一致性级别
强一致性:非常一致性提供可线性化保证。 可线性化是指并发处理请求。 保证读取操作返回项的最新提交版本。 客户端永远不会看到未提交或不完整的写入。 始终保证用户读取最新确认的写入。
受限停滞一致性:保证读取操作遵循一致性前缀保证。 读取操作可以滞后于写入操作最多“K”个项版本(即“更新”)或“T”时间间隔,以先达到者为准。 换言之,如果选择有限过期,则可以通过两种方式配置“过期”
会话一致性:在单个客户端会话中,将保证读取操作遵循一致前缀、单调读取、单调写入、读取写入和读取后写入保证。 这采用单个“写入器”会话,或者多个写入器共享会话令牌。
一致前缀:返回的更新包含所有更新的一些前缀,不带间隔。 一致前缀一致性级别保证读取操作永远不会看到无序写入。
最终一致性:不保证读取的顺序。 如果缺少任何进一步的写入,则副本最终会收敛。最终一致性是最弱的一致性形式,因为客户端可能会读取比之前读取的值还要旧的值。 最终一致性非常适合不需要任何顺序保证的应用程序。
3.2 模拟考试
整理完上面的名词解释,准备工作就算到位了,最后就是找份模拟题练练手。
我发现的免费模拟题只有CertBolt网站上提供了,可以用 CertBolt Microsoft DP-900 模拟题库,共有55道题目,练习一下也就够用了。我也在网上各种找了一些模拟题,整理成一个DP900模拟题PDF文件,给大家练手用。
毕竟是初级认证,考试都是基础知识,按照微软的文档进行复习准备,大概率都是可以通过的,本文的目的也是帮助大家准备考试,做到心中有底。
3.3 现场考试
最后,就是按照约好的时间,去考试中心完成考试,要带2种证明身份的证件。进到考场后,包要存起来,不能带任何东西,不能吃东西,不能喝水,不能与其他人说话等等,可以提前交卷。交卷后,找工作人员,拿到考试评估单,就可以回家庆祝了。与AZ-900的现场考试流程一样,大家可以参考文章AZ-900认证考试攻略。
本文主要是记录一下考试的前后经历,对于IT的小伙伴们,考个认证系统地学习知识,还是很有用的。未来的成就,都是之前的积累,爆发就在未来的某个瞬间。祝大家考试顺利!
转载请注明出处:
http://blog.fens.me/certificate-dp900/