使用外部表在 MinIO 上存储和查询 SQL Server 2022 数据

数据是一回事,洞察力是另一回事。从信息中提取洞察力有多种方法,而这些方法都存在权衡取舍。如果将其想象成一个金字塔,那么人工智能位于顶部,机器学习位于其下方,高级分析位于更下方,SQL 作为基础。这是一幅简化但具有代表性的企业分析图。
挑战在于,人工智能/机器学习人才非常难以找到。这并非新闻,但在与负责运营一些最大的财富 500 强公司分析的同事的交谈中得到了证实。虽然人工智能和机器学习有望提供对数据的更深入的洞察,但建立和利用这些机器学习管道需要高度复杂的数据科学能力。在许多情况下,这些都是长期项目,需要花费数月甚至数年才能完成,并且可能需要对现有员工进行再培训,让他们学习这些新的数据科学范式。
另一方面,SQL 技能在整个组织中随处可见,并且是数据的通用语言。它是世界与数据库交流的方式。这就是为什么 95% 的财富 500 强企业运行微软 SQL Server 的原因。在企业中,可能没有比这更普遍的数据技术了。
借助Microsoft SQL Server 2022,对象存储通过称为外部表的技术成为一等公民。它包含两个部分。首先是 S3 连接器。其次是对 Polybase 数据虚拟化框架的增强。
有了这个新增功能,企业现在可以使用 SQL Server 2022 查询海量对象存储 - 无论这些对象存储位于何处。此新功能解决了两个关键的客户挑战 - 如何访问数据所在的位置以及无需学习新语言。
借助 MinIO,数据可以位于任何地方 - 公有云基础设施、私有云、Kubernetes 发行版、边缘。
让我们深入了解一下。
使用 Minio 和 Microsoft SQL Server 2022 组合随时随地访问数据
Microsoft SQL Server 2022 具有两个关键功能,MinIO 用户可以利用这些功能。
首先,它使数据库管理员能够使用 S3 API 将数据备份和恢复到任何云环境。其次,SQL Server 2022 扩展了最初在 SQL Server 2016 中引入的外部表功能。
外部表允许用户对存储在 SQL Server 之外的外部数据运行查询。这使用户能够灵活地根据需要运行 SQL Server 并在任何地方以任何方式存储数据,同时保留查询数据的能力,而无需移动数据。新的外部表功能现在允许它访问所有通常支持的文件格式以及 Parquet 和 S3 面向对象的存储。
这将极大地扩展 SQL Server 可以查询的数据量。
例如,EnterpriseCo 可以在 Azure 上运行 SQL Server。以前,他们将数据移动到 Azure/SQL Server 中进行查询。现在,EnterpriseCo 可以访问本地数据,而无需将数据移动到任何地方。这意味着这些查询可以针对 PB 级数据集运行。
架构选择几乎无限。在本地运行 SQL Server 并访问云中的数据。在本地运行 SQL Server 并访问私有云中的数据。在云中运行 SQL Server 并访问边缘数据。使用 MinIO 和 SQL Server 构建具有主动-主动、多云复制功能的容错分析系统。主要考虑因素是性能,性能由 SQL Server 和数据的位置决定。
诀窍在于优化部署。所有对象存储都将受益于外部表功能,但 MinIO 的受益尤为显著。原因很简单,在一个企业数据分布在多个云中的世界里,一致性至关重要。MinIO 可以充当公有云、私有云和边缘的数据存储。作为一致的数据层,安全、访问管理、弹性和生命周期管理也保持一致。性能可以保持一致,也可以根据业务需求分层 - 而其他所有内容保持不变。
在 SQL Server 2022 中执行此操作的机制是通过称为 Polybase 的数据虚拟化功能。
Polybase 允许用户使用 Transact-SQL 直接从 SQL Server 以及大多数其他数据库安装(如 Oracle、Teradata、MongoDB 等)和现在的 S3 API 查询数据。MinIO 提供了访问所有超大规模云环境的独特功能。这两者(SQL Server 2022 和 MinIO)的结合使企业能够访问数据并从数据孤岛中获得洞察力,这些数据孤岛到目前为止一直是分段的并且难以组合。
PolyBase 的一个关键功能是允许数据保留在其原始位置和格式。可以像在 SQL Server 中的其他任何表一样,就地查询外部数据。这种方案最大程度地减少了数据移动和数据复制的需要。数据复制带来的最大问题之一是协调,企业浪费数千个工时和计算能力来进行夜间数据协调。
SQL Server 2022 允许将数据持续复制到云和从云复制,从而实现灾难恢复功能。与 MinIO 的结合允许快速数据驻留在基于 NVMe 的快速数据引擎上,并将其分层到任意数量的较慢层。这些组件并排运行,使您能够使用 Transact-SQL 或 Spark 库读取、写入和处理大数据,从而使您能够轻松地将高价值关系数据与非关系型大容量大数据结合和分析。
此外,SQL Server 2022 集成了 Active Directory 并包含基于角色的访问控制,以满足企业的安全和合规性需求。
重要性
添加外部表的重要性怎么强调都不为过。
首先,这进一步证明了对象存储已成为数据基础设施的主要存储。SAN/NAS 阵营不喜欢这个消息,但随着每一周的过去,另一个主要的数据库或数据组件都以一等公民的方式启用对象存储。留守者不多,而那些留守者现在看起来相当小众。
其次,这使得 SQL 查询能够针对比以往任何时候都更大的数据集执行。反过来,这产生了从现有数据中生成更多价值以及从长尾数据或“暗数据”中生成新价值的可能性。SAN/NAS 存储库通常会在几 PB 时遇到瓶颈。想象一下,对 10 或 100 PB 的数据运行查询?现在这已经成为可能。
第三,这进一步巩固了我们在过去几年中看到的第二代解耦故事。第一代是存储和计算的分离。第二代,并行代,是分析应用程序层(SQL 或 Splunk 或 Vertica)将查询功能与存储功能解耦。这实际上无处不在,符合查询参与者、存储参与者和客户的最佳利益。这意味着客户将根据其特定用例的需求构建最佳的定制堆栈。它将强调存储方面的性能、弹性、安全性、云原生特性、可扩展性 - 这反过来又将要求解决方案是软件定义的。
第四,这满足了客户在多云环境中的需求。客户不希望只在一个地方运行 SQL Server 2022 - 他们希望在数据驻留的任何地方运行它。添加外部表(以及 MinIO 作为合作伙伴)满足了这一需求。本地。已检查。Azure。已检查。所有其他公有云和 Kubernetes 发行版。已检查。
这对 SQL Server 和 MinIO 来说是一个分水岭时刻。我们将成为首选的对象存储,原因如上所述,这将扩大我们已经在 F500 账户中获得的深度渗透。
客户用例示例
在这个阶段,我们不能说得太详细 - 但我们有几个客户一直在热切地等待早期访问窗口,以便开始为 11 月的 GA 日期做准备。
例如,我们合作的一家财富 100 强银行在 S3 存储集群上存储了大量客户行为数据。为了运行简单的 SQL 查询以从这些数据中获取基本智能,他们过去使用了将这些数据的一部分导入特定数据库,然后对其运行查询的技术。该客户正在注册微软的早期访问计划,以便他们能够在无需将数据复制到新数据库实例的情况下对数据运行查询。这将为他们节省大量时间,并解决大多数银行需要处理的数据协调难题。此外,如果该银行决定采用机器学习技术从这些数据中获取更复杂的洞察力,他们将能够利用 MLOps 平台,这些平台可以轻松地与他们最初的实现一起扩展到 Kubernetes 集群上。
在另一个示例中,我们有一家大型零售客户需要将来自分布式销售点系统的信息引入使用 MinIO 作为所有夜间活动的对象存储平台的集中式数据存储。文件可能为 parquet 或 csv 格式,并传输到存储桶中。过去,业务分析团队需要将这些数据导入他们的 SQL Server 环境中,才能在此数据上运行批处理分析。但是,随着 SQL Server 2022 的推出,像这样的客户将能够直接对 MinIO 上 S3 存储桶中的数据运行分析。这不仅将为他们节省时间,还将为他们节省与数据复制和协调相关的费用。同样重要的是,零售商(以及任何企业)将能够利用人工智能/机器学习管道直接从这些数据中获取更深入的洞察力。对于微软而言,零售商已提供了与 Azure Synapse 的集成,以推动深度机器学习管道。其他用于驱动此级别洞察力的方法可能利用 TensorFlow、Kubeflow 和 Pytorch,所有这些都与 MinIO 具有良好的集成。
期待
随着今天的公告,抢先体验窗口现已开启。此版本中缺少一些功能(例如灾难恢复),但这些功能很快就会推出。
预计将于 11 月正式发布,但我们鼓励所有企业客户立即开始使用。这将有助于根据特定工作负载的需求进行容量规划。一些客户会大规模部署,另一些客户会将其保持在数百 TB 的范围内。关键在于,只要配置得当,两者都能实现快速运行。
后续计划
我们将在 7 月 12 日与 Hugo Queiroz 在 DevOps.com 举办网络研讨会。此次研讨会将概述联合价值主张,并提供动手操作的机会,让您亲眼见证如何配置 SQL Server 2022 以扩展外部表。注册将在不久后开放。
在此期间,如果您有任何疑问,请随时通过 hello@min.io 联系我们或加入我们的 Slack 频道。