大数据架构基础知识( 三 )


服务器功能可以位于GCP外部或内部的服务器计算机上(例如 , GCP上的" Compute Engine"实例;或AWS上的" EC2"实例) 。可以使用unix-cron作业计划代码运行 。但是这里的一个缺点是 , 它花费了实例的维护工作和成本 , 并且对于一个小的程序而言 , 太多了 。
" Google Cloud Functions"是所谓的"无服务器"解决方案 , 用于在不启动服务器计算机的情况下运行代码 。将代码放入Cloud Functions并设置触发事件(例如 , 在本案例研究中为预定时间 , 但也可以是某些互联网用户的HTML请求) , GCP会自动管理代码的运行 。
我的案例研究中的设置使用纽约出租车数据配置我的案例研究有两个步骤 。
步骤1:设置计划-设置Cloud Scheduler和Pub / Sub以触发Cloud Function 。
在这里 , "发布/订阅"是一项消息服务 , 将由Cloud Functions订阅 , 并在每天的特定时间触发其运行 。" Cloud Scheduler"是一种功能 , 它可以根据unix-cron格式以用户定义的频率启动某些程序 。结合这两者 , 我们可以创建常规消息以供Cloud Function订阅 。有关如何执行的信息 , 请参见此官方说明 。这是我的GCP设置中的屏幕截图 。
大数据架构基础知识文章插图
> Set up in Cloud Scheduler (Captured by author)
大数据架构基础知识文章插图
> Set up in Pub/Sub (Captured by author)
第2步:设置代码-在Cloud Functions上准备代码以查询BigQuery表并将其推送到Google表格 。
下一步是设置云功能 。在Cloud Functions中 , 您定义1)触发器是什么(在本案例研究中 , 是从Pub / Sub发送的" cron-topic" , 链接到Cloud Scheduler , 该触发器每隔早上6点拉动触发器) , 并且2)代码是 要在检测到触发器时运行 。
有关更多详细信息 , 请参见此官方说明 , 以下是我设置的屏幕截图 。
大数据架构基础知识文章插图
> Set up in Cloud Functions (Captured by author)
大数据架构基础知识文章插图
> Code input in Cloud Functions — here you can also set requirements.txt to use installable librari
要运行的代码必须包含在一个您喜欢的函数中(在我的情况下为" nytaxi_pubsub" 。 )代码内容包括两部分:第一部分:在BigQuery上运行查询以将原始BigQuery表简化为KPI并保存 它作为BigQuery中的另一个数据表 , 并使其成为Pandas数据框架 , 第2部分将数据框架推入Sheets 。
这是我实际使用的代码 。重要的是 , 只要BigQuery与Cloud Function位于同一GCP项目中 , 它就会自动进行身份验证(请参阅此页面以获取说明 。 )但是 , 对于Google表格而言 , 情况并非如此 , 它至少需要一个过程来共享 服务帐户访问目标表 。有关更多详细信息 , 请参见gspread库中的描述 。
Google表格上的最终数据集市最后 , 我在Google表格中获得了汇总数据 , 如下所示:
大数据架构基础知识文章插图
> Automatically updated data mart after a long journey of the setup. (captured by author)
该表每天早晨自动更新 , 并且数据仓库正在通过ETL从数据湖接收新数据时 , 我们可以每天第一天轻松地跟踪NY出租车KPI 。
尾注在一家雇用数据工程师和/或数据架构师以及数据科学家的大公司中 , 数据科学家的主要作用不一定是准备数据基础架构并将其部署到位 , 但是至少了解数据架构要点将是有益的 很了解我们在日常工作中的立场 。
Data Lake-> Data Warehouse-> Data Mart是一个典型的平台框架 , 用于处理从源到用例的数据 。将过程分为三个系统组件对于维护和目标性有很多好处 。
工具的选择有很多选择 。应根据数据环境(大小 , 类型等)和业务目标明智地选择它们 。
最后 , 在本文中 , 我讨论了一个案例研究 , 我们在Google Sheets上准备了一个小型数据集市 , 从BigQuery中提取数据作为数据仓库 。通过使用Cloud Scheduler和Pub / Sub , 更新已自动完成 。
参考· "数据湖与数据仓库与数据集市" , Jatin Raisinghani , 整体博客()
· 幻灯片"数据平台指南"(日语) , @ yuzutas0(Twitter) , https://speakerdeck.com/yuzutas0/20200715
· "关联的工作表:分析Google表格中的大数据" , BenCollins , https://www.benlcollins.com/spreadsheets/connected-sheets/
(本文翻译自Moto DEI的文章《Fundamentals of Data Architecture to Help Data Scientists Understand Architectural Diagrams Better》 , 参考:)