在当今快速变化的商业环境中,实时数据处理能够为企业带来深刻的洞察,从而推动企业的成功。例如,Google Cloud Platform (GCP) 提供的实时数据仪表盘能够为决策者提供强有力的数据可视化和可操作的信息。然而,搭建一个流数据管道来支持这样的数据仪表盘可能是一个艰巨的任务。本文将探讨如何利用Google Dataflow来创建一个支持实时数据仪表盘的流数据管道。
数据工程师承担着创建可扩展数据管道的重要任务。所谓的“4V”——多样性、体量、速度和真实性——是当今企业中数据工程师和数据科学家必须面对的四个重要挑战。
“多样性”描述了众多来源和类型的结构化与非结构化数据。照片、视频、电子邮件、音频和其他类型的流数据都是可能的。存储和处理这些非结构化数据是困难的。
大数据指的是极其庞大的数据集。例如,由IoT设备、智能手机、云计算等产生的信息。如果有足够的存储空间,这不会给带来太多麻烦。
数据从企业流程、机器、网络以及人类与社交网络站点、移动设备等的互动中进入的速度被称为速度。数据的流入是巨大且持续的。如果能管理好速度,这些实时数据可能帮助组织和研究人员做出提供战略竞争优势和回报的重要决策。
它涉及到数据偏见、噪声和异常。与其它挑战相比,这是最困难的挑战。必须在将数据用于商业洞察之前评估其准确性,因为它来自众多来源。
GCP的Pub/Sub工具旨在大规模管理分布式消息导向架构。Pub/Sub的全称是发布者/订阅者平台,用于向订阅者传递消息。它可以接收来自各种设备流的消息,包括IoT设备、游戏事件和应用程序流。作为GCP Pub/Sub的订阅者,Dataflow可以在弹性流数据管道中摄取和转换这些消息,并将结果输出到分析数据仓库,如BigQuery。
在云shell中运行以下命令:
bq --location=us-west1 mk trides
上述命令在BigQuery中创建了一个名为“trides”的新数据集。
云存储是一项多功能服务,它允许全球范围内存储和检索数据,无论大小。它可以用于各种任务,如数据存储或数据恢复等。
对于这个项目,将创建一个流数据管道,该管道从Pub/Sub读取传感器数据,计算特定时间框架内的最高温度,并将结果保存在BigQuery中。Dataflow是一个无服务器解决方案,允许在不需要基础设施管理的情况下进行数据分析。
要连接到Google Cloud Platform (GCP) 中的Dataflow API,需要执行几个简单的操作。首先,启动云控制台并在顶部搜索框中输入“Dataflow API”。在搜索结果框中选择Dataflow API后,点击“管理”然后“禁用API”。点击“禁用”以确认操作。
禁用API后,点击“启用”以重新连接到Dataflow API。这将保持API的最新状态,并允许继续使用它进行数据处理。
重新连接到Dataflow API后,现在可以开始一个新的流数据管道。为此,请转到云控制台的Dataflow部分并选择“从模板创建作业”。对于Dataflow任务,输入“streaming-taxi-pipeline”作为作业名称,将“us-central1 (Iowa)”作为区域目的地。
接下来,作为Dataflow模板,选择Pub/Sub主题到BigQuery模板。从输入Pub/Sub主题框中的选择列表中选择项目中已经存在的主题。主题将显示为“projects/projectid>/topics/trides-live”。
在BigQuery输出表字段中输入“projectid>:trides.live”。请注意,“projectid”必须替换为项目ID,项目和数据集名称之间有一个冒号“:”,数据集和表名称之间有一个点“.”。
在临时位置区域,选择“浏览”,然后点击“查看子资源”。点击“创建新文件夹”,输入“temporary”作为文件夹名称。点击“新建”,然后“选择”。
最后,选择“显示可选参数”并输入2作为“最大工作器”和1作为“员工数量”。完成所有这些字段后,点击“运行作业”以构建新流数据管道。
一个新的流作业已经开始!现在可以在数据管道中看到一个可视化表示。数据将在3到5分钟内开始进入BigQuery。
转到云控制台的BigQuery部分,在Google Cloud Platform (GCP) 上的BigQuery上执行查询。为此,请转到导航菜单(屏幕左上角的三条水平线)并选择“BigQuery”。
SELECT * FROM trides.live LIMIT 10