目录
什么是 Azure Synapse Analytics(以前称为 SQL DW)?
Azure Synapse 中的 SQL Analytics 和 SQL 池
Azure Synapse Analytics(以前称为 SQL DW)体系结构
概述
什么是 Azure Synapse Analytics(以前称为 SQL DW)?
Azure Synapse 是一种无限制的分析服务,它将企业数据仓库和大数据分析结合在一起。 它让你可以根据自己的条件自由查询数据,无论是使用无服务器的按需资源还是使用大规模预配的资源。 Azure Synapse 将这两个领域结合在一起,提供统一的体验来引入、准备、管理和处理数据,以满足即时 BI 需求
Azure Synapse 包含四个组件:
- SQL Analytics:基于 T-SQL 的完整分析 – 正式版
- SQL 池(按预配的 DWU 付费)
- SQL 随选(按处理的 TB 付费)-(预览)
- Spark:深度集成的 Apache Spark(预览)
- 数据集成:混合数据集成(预览)
- 工作室:统一的用户体验。(预览版)
Azure Synapse 中的 SQL Analytics 和 SQL 池
SQL Analytics 是指 Azure Synapse 中正式发布的企业数据仓库功能。
SQL 池表示使用 SQL Analytics 时预配的分析资源集合。 SQL 池的大小由数据仓库单位 (DWU) 决定。
使用简单的 PolyBase T-SQL 查询导入大数据,然后利用 MPP 的功能运行高性能分析。 进行集成和分析时,SQL Analytics 是企业为了获取更快且更可靠见解能够依赖的唯一事实来源。
数据仓库是基于云的端到端大数据解决方案的关键组件。
在云数据解决方案中,可从各种源将数据引入大数据存储中。 将数据置于大数据存储中以后,Hadoop、Spark 和机器学习算法就可以准备和训练数据。 当数据准备就绪可以进行复杂的分析时,SQL Analytics 就会使用 PolyBase 来查询大数据存储。 PolyBase 使用标准 T-SQL 查询将数据引入 SQL Analytics 表中。
SQL Analytics 通过按列存储将数据存储到关系表中。 此格式可显著降低数据存储费用,改进查询性能。 存储数据后,即可大规模地运行分析。 与传统数据库系统相比,数分钟的分析查询只需数秒即可完成,数天的查询只需数小时。
分析结果可以传输到世界各地的报告数据库或应用程序。 然后即可通过业务分析获得进行明智的业务决策所需的见解。
安全性:
连接安全性是指如何使用防火墙规则和连接加密来限制和保护数据库连接。
服务器和数据库使用防火墙规则来拒绝源自未明确列入允许列表的 IP 地址的连接企图。 若要从应用程序或客户端计算机的公共 IP 地址进行连接,必须先使用 Azure 门户、REST API 或 PowerShell 创建服务器级防火墙规则。
最佳做法是尽量通过服务器防火墙来限制允许的 IP 地址范围。 要从本地计算机访问 SQL 池,请确保网络和本地计算机上的防火墙允许在 TCP 端口 1433 上的传出通信。
Azure Synapse Analytics 使用服务器级 IP 防火墙规则。 不支持数据库级 IP 防火墙规则。
默认加密到 SQL 池的连接。 通过修改连接设置来禁用加密的操作会被忽略。
身份验证是指连接到数据库时如何证明身份。 SQL 池当前支持通过用户名和密码,以及 Azure Active Directory 进行 SQL Server 身份验证。
在为数据库创建逻辑服务器时,已指定了一个包含用户名和密码的“服务器管理员”登录名。 使用这些凭据,可以通过 SQL Server 身份验证以数据库所有者(或“dbo”)的身份在该服务器对任何数据库进行验证。
但是,组织的用户最好使用不同的帐户进行身份验证。 这样,便可以限制授予应用程序的权限,并在应用程序代码容易受到 SQL 注入攻击的情况下降低恶意活动的风险。
若要创建 SQL Server 验证的用户,请使用服务器管理员登录名连接到服务器上的 master 数据库,并创建新的服务器登录名。 最好是在针对 Azure Synapse 用户的 master 数据库中创建一个用户。 在 master 中创建用户以后,用户即可使用 SSMS 之类的工具登录,不需指定数据库名称。 此外,用户还可以使用对象资源管理器查看 SQL Server 上的所有数据库。
SQL复制
— Connect to master database and create a login
CREATE LOGIN ApplicationLogin WITH PASSWORD = ‘Str0ng_password’;
CREATE USER ApplicationUser FOR LOGIN ApplicationLogin;
然后,使用服务器管理员登录名连接到“SQL 池数据库”,并基于刚刚创建的服务器登录名创建数据库用户 。
SQL复制
— Connect to SQL DW database and create a database user
CREATE USER ApplicationUser FOR LOGIN ApplicationLogin;
要授予用户执行其他操作(例如创建登录名或新数据库)的权限,则还需在 master 数据库中为其分配 Loginmanager 和 dbmanager 角色。
授权是指在进行身份验证和连接后可以在数据库中执行的操作。 授权权限由角色成员资格和权限决定。 作为最佳实践,应向用户授予所需的最低权限。 可使用下列存储过程来管理角色:
SQL复制
EXEC sp_addrolemember ‘db_datareader’, ‘ApplicationUser’; — allows ApplicationUser to read data
EXEC sp_addrolemember ‘db_datawriter’, ‘ApplicationUser’; — allows ApplicationUser to write data
用于连接的服务器管理员帐户是 db_owner 所有者的成员,该帐户有权在数据库中执行任何操作。 请保存此帐户,以便部署架构升级并执行其他管理操作。 权限受到更多限制的“ApplicationUser”帐户可让用户使用应用程序所需的最低权限从应用程序连接到数据库。
有许多方式可以进一步限制用户可以在数据仓库中执行的操作:
- 通过细化权限,可控制能对数据库中单个列、表、架构、视图、过程和其他对象执行的操作。使用细化的权限可以进行最精细的控制,可以根据用户需要授予其最低权限。
- 除 db_datareader 和 db_datawriter 以外的数据库角色可用于创建权限较大的应用程序用户帐户或权限较小的管理帐户。内置的固定的数据库角色可以方便地用来授予权限,但可能会导致所授权限超出需要的情况。
- 存储过程可用于限制可对数据库执行的操作。
下面的示例介绍如何对用户定义的构架授予读取访问权限。
SQL复制
–CREATE SCHEMA Test
GRANT SELECT ON SCHEMA::Test to ApplicationUser
从 Azure 门户或使用 Azure 资源管理器 API 管理数据库和逻辑服务器的操作会根据门户用户帐户的角色分配进行控制。 有关详细信息,请参阅 Azure 门户中基于角色的访问控制。
透明数据加密 (TDE) 可以对静态数据进行加密和解密,避免恶意活动造成的威胁。 在加密数据库时,可以对关联的备份和事务日志文件加密,无需对应用程序进行任何更改。 TDE 使用称为数据库加密密钥的对称密钥来加密整个数据库的存储。
在 SQL 数据库中,数据库加密密钥由内置服务器证书保护。 内置服务器证书对每个 SQL 数据库服务器都是唯一的。 Azure 每隔 90 天自动轮换这些证书至少一次。 使用的加密算法为 AES-256。 有关 TDE 的一般描述,请参阅透明数据加密。
高级数据安全:
高级数据安全性 (ADS) 提供一组高级 SQL 安全功能,包括数据发现和分类、漏洞评估和高级威胁防护。
- 数据发现和分类提供了内置于 Azure SQL 数据库的功能,用于发现、分类、标记和保护数据库中的敏感数据。 它可用于直观查看数据库分类状态,以及跟踪对数据库内和其边界外的敏感数据的访问。
- 漏洞评估是一项易于配置的服务,可以发现、跟踪并帮助修正潜在的数据库漏洞。它可直观查看安全状态,包括解决安全问题的可操作步骤,并可加强数据库的防御工事。
- 高级威胁防护检测异常活动,指出尝试访问或利用数据库的行为异常且可能有害。它不断监视数据库的可疑活动,并针对潜在漏洞、SQL 注入攻击和异常数据库访问模式提供即时的安全警报。 高级威胁防护警报提供可疑活动的详细信息,并建议如何调查和缓解威胁。
一旦启用 SQL ADS,其包含的所有功能都会启用。 只需单击一次,即可为 SQL 数据库服务器或托管实例上的所有数据库启用 ADS。 需要属于 SQL 安全管理器 角色、SQL 数据库管理员角色或 SQL Server 管理员角色才能启用或管理 ADS 设置。
ADS 定价遵循 Azure 安全中心“标准”层级定价,其中每个受保护的 SQL 数据库服务器或托管实例视为一个节点。 新的受保护资源符合安全中心标准层免费试用版资格。
- 网络安全性
- 身份验证
- 访问控制
- 数据保护
- 数据保护
体系架构
Azure Synapse Analytics(以前称为 SQL DW)体系结构
SQL Analytics 利用横向扩展体系结构将数据的计算处理分布在多个节点上。 缩放单位是计算能力(称为数据仓库单位)的抽象概念。 计算独立于存储,使你能够独立于系统中的数据来缩放计算。
SQL Analytics 使用基于节点的体系结构。 应用程序将 T-SQL 命令连接到、发布给控制节点,该节点是 SQL Analytics 的单一入口点。 控制节点运行用于优化并行处理查询的 MPP 引擎,然后将操作传递给计算节点以实现并行工作。
计算节点将所有用户数据存储在 Azure 存储中并运行并行查询。 数据移动服务 (DMS) 是一项系统级内部服务,它根据需要在节点间移动数据以并行运行查询和返回准确的结果。
使用脱偶联的存储和计算,用户可以在使用 SQL Analytics 时执行以下操作:
- 无论存储需求如何,都可独立计算大小。
- 无需移动数据,即可在 SQL 池(数据仓库)中增加或减少计算能力。
- 在保持数据不受影响的情况下暂停计算容量,因此只需为存储付费。
- 在操作期间恢复计算容量。
SQL Analytics 利用 Azure 存储来确保用户数据安全。 由于数据由 Azure 存储进行存储和管理,因此会针对存储使用量单独收费。 数据将分片到分布区,以优化系统性能。 可选择在定义表时用于分布数据的分片模式。 支持以下分片模式:
- 哈希
- 轮循机制
- 复制
控制节点是体系结构的核心。 它是与所有应用程序和连接进行交互的前端。 MPP 引擎在控制节点上运行以优化和协调并行查询。 将 T-SQL 查询提交到 SQL Analytics 时,控制节点会将其转换为可针对每个分布区并行运行的查询。
计算节点
计算节点提供计算能力。 分布区映射到计算节点以进行处理。 如果支付更多计算资源费用,SQL Analytics 会将分布区重新映射到可用的计算节点。 计算节点数的范围是 1 到 60,它由 SQL Analytics 的服务级别确定。
每个计算节点均有一个节点 ID,该 ID 会显示在系统视图中。 在名称以 sys.pdw_nodes 开头的系统视图中找到 node_id 列即可查看计算节点 ID。
数据移动服务 (DMS) 是一项数据传输技术,它可协调计算节点间的数据移动。 某些查询需要移动数据以确保并行查询返回准确的结果。 需要移动数据时,DMS 可确保正确的数据到达正确的位置。
分布区是存储和处理针对分布式数据运行的并行查询的基本单位。 SQL Analytics 运行查询时,工作会被分割成 60 个并行运行的小型查询。
每个小型查询各在一个数据分布区上运行。 每个计算节点管理其中一个或多个分布区。 具有最多计算资源的 SQL 池的每个分布区占 1 个计算节点。 具有最小计算资源的 SQL 池的所有分布区占 1 个计算节点。
哈希分布表可为大型表上的联接和聚合提供最高查询性能。
为了将数据分片到哈希分布式表中,SQL Analytics 使用哈希函数明确将 1 个行分配到 1 个分布区。 在表定义中,可以将一个列指定为分布列。 哈希函数使用分布列中的值将 1 个行分配到 1 个分布区。
- 一个行属于一个分布区。
- 通过确定性哈希算法将一个行分配到一个分布区。
- 不同大小的表显示,每个分布区的表行的数目各不相同。
选择分布列时需考虑到性能,例如特异性、数据倾斜,以及在系统上运行的查询类型。
轮循机制表是最简单的表,在被用作负载临时表时,它可创造和提供高速性能。
轮循机制分布表在表中均匀分布数据,但不会进行进一步优化。 首先随机选择一个分布区,然后将行的缓冲区按顺序分配给分布区。 将数据加载到轮循机制表速度很快,但就查询性能而言,哈希分布式表的性能更佳。 联接循环表要求重新组织数据,因此这需要花费更多时间。
复制表为小型表提供最快查询性能。
复制表在每个计算节点上缓存表的完整副本。 因此复制表以后,无需在执行联接或聚合前在计算节点中间传输数据。 复制表尤为适用于小型表。 它需要额外存储并且在写入数据时会产生额外开销,因此不适用于大型表。
下图显示了在每个计算节点的第一个分布区上缓存的复制表。
解决方案
Azure Synapse 可极快速地跨数据仓库和大数据分析系统提供从所有数据中获取的见解。借助 Azure Synapse,数据专业人员可以使用熟悉的 SQL 语言查询 PB 级别的关系数据和非关系数据。对于任务关键型工作负载,可以使用智能工作负载管理、工作负载隔离和无限制的并发来轻松优化所有查询的性能。
使用 Azure Synapse,可轻松启用 BI 和机器学习。它与 Power BI 和 Azure 机器学习深度集成,大幅提高了从所有数据中发现见解的能力,并将机器学习模型应用于所有智能应用。使用无限制的分析服务,可对所有最重要的数据(包括 Dynamics 365、Office 365 和支持 Open Data Initiative 的 SaaS 服务)无缝地应用智能,并且只需点击几下即可轻松共享数据,从而大幅缩短了 BI 和机器学习项目的项目开发时间。
使用统一的体验生成端到端分析解决方案。Azure Synapse Studio 为数据准备、数据管理、数据仓库、大数据和 AI 任务提供了统一的工作区。数据工程师可以使用无代码的视觉环境来管理数据管道。数据库管理员可以自动优化查询。数据科学家在几分钟内即可生成概念证明。业务分析师可以安全地访问数据集,并使用 Power BI 在几分钟内生成仪表板 – 始终使用相同的分析服务。
Azure 具有市场上非常先进的安全和隐私功能。这些功能内置于 Azure Synapse 的结构中,例如自动威胁检测和始终可用的数据加密。为了实现精细的访问控制,企业可以使用列级安全性和本机行级安全性以及动态数据掩码来自动实时保护敏感数据,从而帮助确保数据保持安全和私有。