发布于: Aug 9, 2022

无论是什么数据库,最终目的都是为了建立一个 大数据应用数据管理平台,智能湖仓是如何实现这一最终目的呢?这离不开其架构中的最后一层——数据消费层。

我们的智能湖仓参考架构提供多种专用 Amazon Web Services 服务,能够让不同角色类型之间的数据消费方式互连互通,包括支持交互式 SQL 查询、商务智能与机器学习等多种分析用例。这些服务使用统一的智能湖仓接口访问存储在 Amazon S3、Amazon Redshift 以及 Lake Formation 目录中的所有数据与元数据。此外,各项服务还可以通过开放文件格式(例如 JSON、Avro、Parquet 以及 ORC)使用 Amazon Redshift 表中存储的平面关系数据以及 S3 对象中存储的平面或复杂结构化或非结构化数据。

要使用交互式 SQL 探索智能湖仓内存储的所有数据,商务分析师与数据科学家可以使用 Amazon Redshift(配合 Redshift Spectrum)或者 Athena 轻松实现。您可以运行SQL查询,这些查询会将 Amazon Redshift 集群中托管的平面、关系、结构化维度数据,连同 Amazon S3 中存储的 TB 级规模的平面或复杂结构化历史事实数据结合起来,而且允许在数据中使用 JSON、Avro、Parquet 以及 ORC 等开放文件格式。在 Amazon S3 中查询数据集时,Athena 与 Redshift Spectrum 都将获取存储在 Lake Formation 目录中的schema,并将其应用于读取操作(schema-on-read)。您可以在 Athena 或 Amazon Redshift 各自的控制台上运行查询,也可以将面向 JDBC 或 ODBC 端点提交查询。关于更多详细信息,请参阅使用 ODBC 与 JDBC 驱动程序接入Amazon Athena,以及在 Amazon Redshift 中配置连接。

Athena 能够针对存储在 Amazon S3 中的 TB 级数据运行复杂的 ANSI SQL,而且您无需预先将其加载至数据库内。Athena 具有无服务器特性,因此不存在需要设置或管理的基础设施,您只需要为运行查询所产生的数据扫描量付费。Athena 还提供联合查询功能,允许在同一 SQL 查询中将 Amazon S3 托管的事实数据与Amazon Redshift集群内托管的维度表结合起来。Athena利用存储在 Lake Formation 目录内的数据集分区信息减少数据扫描量,由此更快提供结果并降低查询成本。您可以使用 Athena CTAS 语句存储重复的查询结果,这将进一步降低查询成本。

Amazon Redshift 提供强大的 SQL 功能,可对智能湖仓存储(跨 Amazon Redshift MPP 集群与 S3 存储湖)内的超大型数据集进行快速在线分析处理(OLAP)。Amazon Redshift 还提供功能强大的查询优化器,能够通过类似于PostgreSQL的语法编写出复杂的用户查询,并生成可在 Amazon Redshift
MPP 集群与 Redshift Spectrum节点队列(以查询 Amazon S3 中的数据)上运行的高性能查询计划。Amazon Redshift 则提供结果缓存功能,可将同一查询的重复操作次数降低几个数量级,借此显著缩短查询运行时间。借助 Amazon Redshift 中的物化视图,您只需要对复杂 join 进行一次预先计算(后续以增量方式进行刷新),借此简化并加快用户所需编写的下游查询。Amazon Redshift 还提供并发扩展,可在几秒钟内启动更多瞬态集群,借此支持几乎无限数量的并发查询。您可以将查询结果写入回 Amazon Redshift 原生表或者 S3 数据湖上托管的外部表(使用 Redshift Spectrum)。

相关文章