跳到主要内容
公司博客上

使用Databricks Delta和AWS Glue数据目录服务转换您的AWS数据湖

2019年9月3日 公司博客上

分享这篇文章

在这篇博文中,我们将探讨如何可靠而有效地转换你的AWS数据湖成一个三角洲湖无缝地使用AWS Glue数据目录服务。AWS Glue服务是一个与Apache兼容的Hive无服务器metastore,它允许您轻松地跨AWS服务、应用程序或AWS帐户共享表元数据。

这提供了几个具体的好处:

  • 通过在多个Databricks工作区中使用相同的AWS Glue目录,简化了可管理性。
  • 通过在AWS Glue中对元数据使用身份和访问管理凭据直通来简化集成安全性。参考Databricks博客介绍Databricks AWS IAM凭据Passthrough详细说明。
  • 更容易地访问跨Amazon服务的元数据和访问在AWS Glue中编目的数据。

Databricks Delta Lake与AWS核心服务集成

此参考实现说明了Databricks Delta Lake与AWS核心服务的独特集成,可帮助您解决最复杂的问题数据湖挑战。

概述

什么是三角洲湖?

Delta Lake是一个开源的存bob下载地址储层,为数据湖带来了可靠性。Delta Lake提供ACID事务、可扩展的元数据处理,并统一了流和批处理数据。Delta Lake运行在您现有的数据湖之上,并且与Apache Spark api完全兼容。

下载这个电子书了解数据湖通常面临的关键数据可靠性挑战,以及Delta Lake如何帮助解决这些挑战。

Databricks最近在2019年Spark峰会上开源了Delta Lake。你可以在这里了解BOB低频彩更多关于三角洲湖的信息delta.io

Presto和Amazon Athena对Delta Lake的兼容性支持

从Databricks运行时5.5开始,您现在可以从Presto和Amazon Athena查询Delta Lake表。当使用manifest文件在Hive metastore中定义外部表时,Presto和Amazon Athena使用manifest文件中的文件列表,而不是通过目录列表来查找文件。可以像查询以Parquet等格式存储数据的表一样查询这些表。

步骤1。如何配置Databricks集群以访问AWS Glue Catalog

首先,您必须启动Databricks计算集群使用必要的AWS Glue Catalog IAM角色。IAM的角色和政策要求已在Databricks AWS Glue作为Metastore文档

出于本文的目的,我创建了一个AWS IAM角色,名为Field_Glue_Role它还委托访问我的S3桶。我将角色附加到集群配置中,如图1所示。

图1所示。

https://www.youtube.com/watch?v=g73JZF1qgY4

接下来,Spark配置属性必须设置群集的配置之前到集群启动,如图2所示。

图2。更新Databricks Cluster Spark Configuration属性

https://www.youtube.com/watch?v=D1_L0tFEmEg

步骤2。使用Databricks笔记本设置AWS Glue数据库

在创建AWS Glue数据库之前,让我们将集群连接到在上一步中创建的笔记本上,并发出以下命令测试设置:

为Databricks笔记本测试AWS Glue数据库设置

然后验证使用AWS Glue控制台是否显示了相同的数据库列表,并列出数据库。

使用AWS Glue控制台验证数据库列表

现在,我们准备直接从我们的笔记本中创建一个新的AWS Glue数据库,如下所示:

并通过重新发出SHOW DATABASES来验证新的AWS Glue数据库是否已成功创建。还可以通过数据窗格查看AWS Glue数据库。

https://www.youtube.com/watch?v=NHrp3x-u7xk

步骤3。使用相同的metastore创建Delta Lake表和清单文件

现在,让我们直接从笔记本创建我们的表并将其编目到AWS Glue数据目录中。参考如何填充AWS Glue数据目录用于使用爬虫创建和编目表。

我用的是电影推荐网站MovieLens由电影评分组成的数据集。我首先用这个python代码创建了一个DataFrame:

使用python代码的示例DataFrame数据集

然后将DataFrame注册为临时表,使用SQL访问它,如下所示:

注册一个DataFrame表,以便可以通过SQL上下文访问它

现在让我们使用SQL和上一步创建的临时表创建一个Delta Lake表:

使用SQL和临时DataFrame表创建Delta Lake表

注意:创建Delta Lake表非常简单,如本文所述三角洲湖快速入门指南

现在,我们可以使用以下步骤生成Amazon Athena所需的清单文件。

  1. 通过运行这个Scala方法生成清单。如果您创建了python、SQL或R笔记本,请记住在单元格前加上%scala。

使用Scala生成Amazon Athena所需的清单文件

  1. 在连接到Athena的Hive metastore中创建一个表,使用特殊格式SymlinkTextInputFormat和manifest文件位置:

在连接到Athena的Hive metastore中创建一个表,使用特殊格式SymlinkTextInputFormat和manifest文件位置

在上面的样例代码中,请注意清单文件是在s3a: / / aws-airlifts movies_delta / _symlink_format_manifest /文件的位置。

步骤4。使用Amazon Athena查询Delta Lake表

Athena是一个无服务器服务,不需要任何基础设施来管理和维护。因此,您可以查询Delta表,而不需要运行Databricks集群。

从Amazon Athena控制台,选择您的数据库,然后如下所示预览表:

https://www.youtube.com/watch?v=zkr8fgjnxf0

结论

在AWS Glue的支持下,我们为所有使用AWS生态系统的企业引入了强大的无服务器转移策略。此外,我们正在通过Delta Lake提升您的数据湖的可靠性,并通过与Amazon Athena集成为您的企业提供无缝的无服务器数据访问。

现在,您可以放心地让您的分析师、数据工程师和数据科学家使用Databricks统一分析平台来支持您在AWS上的数据湖战略。bob体育亚洲版bob体育客户端下载

相关资源:

试一试!

免费试用Databricks

相关的帖子

看到所有公司博客上的帖子