关于机器学习:搞定数据管道会-SQL-查询就够了

38次阅读

共计 2730 个字符,预计需要花费 7 分钟才能阅读完成。

作为一名终日与代码打交道的码农,你必定免不了会接触,甚至频繁解决各类数据吧。尤其是在互联网技术疾速倒退的明天,咱们每个人每天所遇到的数据,无论体量、增速和类型都在一直减少,那么问题来了:如何治理并了解这些「大数据」,进而从中取得最大化价值?

思考到企业外部的各种数据孤岛,继续产生各种格局的数据和一直变动的技术环境,这些因素使得收集、存储、分享,以及对数据进行剖析和可视化变得困难重重。面对这种状况,咱们又该如何构建持重的数据管道,连贯至数据仓储,并为数据科学家与工程师们获取无关数据见解提供所需平台?

为了满足这种需要,很多组织曾经开始投资中心化的数据仓储,并逐步意识到应用 Amazon Simple Storage Service(S3)作为数据湖的长处。然而要为数据湖构建数据管道,不可避免会波及到数据发现过程,其中包含辨认数据格式和构造,对数据编订目录,以及了解元数据以构建表定义,提供数据查问等。

本文将疏导大家实现构建数据管道所需的全副步骤:从应用 AWS Glue 为 Amazon S3 中存储的数据创立元数据爬取程序,进行数据发现与编目;到应用 Amazon Athena 检索表数据,以及最初通过 Amazon SageMaker Notebooks 查问 Athena 表。

这其中的重点在于 Amazon SageMaker,这是一个端到端机器学习(ML)平台,咱们能够借此构建、训练与部署机器学习模型。这项高度模块化的服务让咱们能够独自应用其中的每个组件。应用 Amazon SageMaker 笔记本模块可能晋升与数据交互的效率,而不会因为须要将数据下载到本地而产生提早。

下文将展现如何应用 Amazon SageMaker 的 Jupyter 笔记本组件集成 Athena,并进行数据处理。本文示例中应用来自 Airline On-Time Performance 的 2008 年数据集。此数据集蕴含了从 1987 年 10 月到 2008 年 4 月间美国境内所有商业航班的到达与登程详细信息。咱们会上传该数据到 Amazon S3,以供 AWS Glue 和 Athena,以及随后的 Amazon SageMaker 应用。

应用 AWS Glue 发现数据

AWS Glue 的数据目录性能和内置的 Amazon S3 集成简化了辨认数据与数据结构定义主动获取。在数据目录中应用 AWS Glue Crawler 程序,咱们能够遍历存储在 Amazon S3 的数据,并在数据目录中主动创立和保护数据字典。
编制数据目录的第一步是定义数据库:
1. 在 AWS Glue 控制台中抉择增加数据库,填入数据库名称并抉择「创立」。

2. 随后创立一个 AWS Glue 元数据爬取程序以增加表到数据库。Crawler 程序会爬取 Amazon S3 中的数据,并增加表定义到数据库。

3. 抉择一个数据存储。数据源可基于 S3、JDBC 和 DynamoDB 等,填入对应的数据源 URL,而后抉择下一步。

4. 针对 IAM 角色,咱们须要创立一个新角色,它用于为 AWS Glue 提供拜访 Amazon S3 中文件或其余数据源的权限,并且具备对数据进行解密的权限。

5. 抉择下一步,设置运行频率为「按需运行」。

6. 随后抉择咱们在第一步中创立的数据库作为元数据资料库。

7. 查看步骤,而后抉择实现。Crawler 程序已准备就绪,能够运行了。抉择立刻运行。这将会为咱们在 Amazon S3 中的数据创立表定义。

应用 Athena 查问 Amazon S3 数据

Athena 能够让咱们应用规范 SQL 接口查问 Amazon S3 内的数据。通过应用 AWS Glue 数据目录,咱们能够创立交互式查问以及执行后续业务所需的任何数据操作。Amazon Athena 控制台会主动反映 AWS Glue 目录中的数据库和表。只需登录到 AWS 治理控制台,导航到 Amazon Athena 控制台,就能够在查问编辑器中看到之前创立的数据库和表。

请确保抉择右上角的设置按钮并注意转储地位。Amazon Athena 会在转储的 S3 桶中保留查问后果,以便 Amazon SageMaker 在后续步骤中查问 Athena 时应用。

应用 Amazon SageMaker 进行数据分析与治理

在此数据管道中的最初一步是,使这些表定义可用于 Amazon SageMaker 中的 Jupyter 笔记本实例。Jupyter 笔记本被数据科学家广泛用于对数据进行可视化、发展统计分析、执行数据操作,以及使数据随时可被用于机器学习。

1. 在 Amazon SageMaker 控制台中,抉择创立笔记本实例。

2. 在笔记本实例设置下方填充笔记本实例名称,为 Amazon SageMaker 中的笔记本实例抉择实例类型和 IAM 角色,以便与 Amazon S3 进行交互。SageMaker 执行角色须要有对 Athena,数据所在的 S3 存储桶以及 KMS(若已加密)进行操作的必要权限。

3. 在创立笔记本实例和将状态更改为 InService 时急躁期待。

4. 抉择关上链接,此操作将在独自的浏览器窗口关上笔记本界面。

5. 单击新建,以便在 Jupyter 中创立新的笔记本。Amazon SageMaker 为 Jupyter 提供了多个内核,包含反对 Python 2 和 3、MXNet、TensorFlow 和 PySpark 的内核。抉择 Python 作为此练习的内核,它有内置的 Pandas 库。在笔记本内,执行以下命令以装置 Athena JDBC 驱动程序。PyAthena 是实用于 Amazon Athena JDBC 驱动程序的 Python DB API 2.0 (PEP 249) 合规客户端。

import sys
!{sys.executable} -m pip install PyAthena

6. 在装置 Athena 驱动程序当前,咱们就能够应用 JDBC 连贯以连贯至 Athena 并生成 Pandas 数据框。数据科学家对数据的操作通常可被分为多个阶段:修整与荡涤数据、对其剖析和建模、而后将剖析后果整顿到适宜图表展现的格局。Pandas 是实用于所有这些工作的现实工具。

from pyathena import connect
import pandas as pd
conn = connect(s3_staging_dir='<ATHENA QUERY RESULTS LOCATION>',
               region_name='<YOUR REGION, for example, us-west-2>')

df = pd.read_sql("SELECT * FROM athenaquery.<YOUR TABLE NAME> limit 8;", conn)
df

论断

本文中形容的解决方案提供了一种对传入数据存储的数据进行编目标自动化形式,并提供了数据操作和剖析能力。此外,此场景为特色工程、构建、训练和评估更多机器学习模型奠定了根底,从而深刻洞察数据并产出更有价值的业务成绩。

正文完
 0