使用 Terraform 在 5 分钟内引导现代数据堆栈
什么是现代数据堆栈以及如何部署? 本指南将通过 Airbyte、BigQuery、dbt、Metabase 以及使用 Terraform 所需的所有其他内容的设置说明,激励您开始这一旅程。
By 阮阮,Joon Solutions 的 CTO 和董事会成员.
现代数据堆栈架构(作者提供的图片)。
什么是现代数据堆栈
现代数据堆栈 (MDS) 是一组技术,使现代数据仓库的性能比传统数据仓库的性能提高 10-10,000 倍。 最终,MDS 可以节省时间、金钱和精力。 MDS 的四大支柱是 数据连接器,以 云数据仓库,以 数据转换器和一个 BI 和数据探索 工具。
便于 积分 通过预先构建数百个即用型连接器的托管和开源工具使之成为可能。 过去需要数据工程师团队定期构建和维护的工具现在可以被用于简单用例的工具所取代。 托管解决方案如 缝 和 Fivetran,以及开源解决方案,例如 空字节 和 梅尔塔诺,正在使这一切发生。
使用 基于云的柱状数据仓库 由于其高性能和成本效益,最近已成为趋势。 您可以从每月 100 美元(或更少)开始支付,而不是每年为本地 MPP(大规模并行处理)数据库支付 100 万美元。 据称,云原生数据仓库的速度比传统 OLTP 快 10-10,000 倍。 此类别中的热门选项是 BigQuery的, 雪花及 红移.
过去,由于技术的限制,数据仓库内的数据处理是瓶颈。 因此,企业不得不青睐 ETL 而不是 ELT,以减少数据仓库的工作量。 然而,随着云原生数据仓库的进步,许多 数据仓库内转换工具 正在变得流行。 此类别中最值得注意的是 dbt(数据构建工具)和 Dataform。
BI工具 也用于处理一些转换以减少遗留数据仓库的工作负载。 然而,随着现代数据堆栈的出现,BI 工具的重点(在我看来)已经转移到数据访问、自助服务和数据发现的民主化上。 我认为正在朝着正确方向发展的一些工具是 旁观者, 元数据库及 超.
我们的架构
开始使用现代数据堆栈可能会令人畏惧,因为涉及许多不同的工具和流程。 本文旨在帮助您尽可能顺利地开始这一旅程。 准备步骤有很多,但只需要 5分钟 完成后启动所有资源。
我们将使用 Terraform,一种基础设施即代码开源工具,用于配置 Google Cloud 中的所有内容。 如果您按照以下说明进行操作,则会创建以下资源。
- 启用了必要 API 的 Google Cloud 项目
- 摄取:运行 Airbyte 的 GCE 实例
- 仓储:BigQuery 数据集
- Orchestration(可选):运行 Airflow 的 GCE 实例
- BI 和数据发现:运行 Metabase 的 GCE 实例
- 不同服务的服务账户及其 IAM 权限绑定
立即购买
创建 Google Cloud 帐户并启用结算功能
该项目中的 Terraform 代码将与 Google Cloud Platform 进行交互。 因此,我们的第一步是创建一个 Google 帐户并 启用计费。 请注意 帐单ID 帐单页面中的格式如下: ######-######-######。 您在下一步中将需要该值。
安装 Google 云 CLI
按照说明安装 Google Cloud SDK 此处 对于您各自的操作系统。 当你拥有了 云 CLI 安装完毕后,在终端窗口中运行以下命令并按照说明进行操作。 这将使 Terraform 使用默认凭据进行身份验证。
gcloud auth应用程序-默认登录
安装地形
按照说明操作 此处 在本地安装 Terraform CLI。 之后运行以下命令来检查您的安装:
地形-v
你应该看到这样的东西:
darwin_amd1.0.0 上的 Terraform v64 + 提供商registry.terraform.io/hashicorp/google v3.71.0
在本地分叉或克隆此存储库
您还可以 分叉这个仓库 到您的帐户或将其克隆到您的本地计算机。 要克隆存储库,请运行以下命令:
git 克隆 https://github.com/tuanchris/modern-data-stack cd 现代数据堆栈
创建一个 terraform.tfvars 文件
创建一个 terraform.tfvars 文件包含以下内容:
# 第一步中的账单 ID billing_id = ######-######-###### # 您希望项目所在的文件夹 ID # 如果您使用,请将此项留空个人帐户folder_id = "" # 您希望项目所在的组织ID # 如果您使用个人帐户,请将此字段留空 org_id = "" # 要创建的项目project_id = ""
警告:这些被视为敏感值。 不要提交此文件和 *.tfstate 文件到公共存储库。
自定义中的值 变量.tf
中的变量 变量.tf 将用于资源的配置。
图片由作者提供。
您可以通过更改变量来自定义不同服务的机器类型。 如果您不想使用任何服务,请在 gce.tf 文件中。
您还可以通过将源系统添加到源数据集字典中来为源系统创建不同的数据集。
创建现代数据堆栈
最后,要在 Google Cloud 上配置所有这些资源,请运行以下命令:
地形应用
图片由作者提供。
研究终端中的输出,确保所有资源设置都是您想要的。 类型 含 并击中 进入.
Terraform 将使用我们的现代数据堆栈创建一个 Google Cloud 项目。 整个过程大约需要2-3分钟。 将服务安装到 VM 实例上还需要 2-3 分钟。 整个过程仅需 5 分钟或更短时间。
使用现代数据堆栈
检索不同服务的服务帐户
图片由作者提供。
Google 建议对不同的服务使用不同的服务帐户。 项目中的 terraform 代码为已使用的不同技术创建了不同的帐户。 要检索特定服务的服务帐户,请运行以下命令:
terraform 输出 [service_name]_sa_key
所有这些帐户的默认权限是 角色/bigquery.admin。 您可以在 iam.tf 文件中。
您返回的值是 base64 编码的。 要将此值恢复为 JSON 格式,请运行以下命令:
echo "[上一个命令的值]" | Base64-d
您可以使用 JSON 服务帐户来验证对项目资源的服务访问。
警告:拥有此服务帐户的任何人都可以访问您的项目。
使用 Airbyte 摄取数据
空字节 是一款优秀的开源数据集成工具。 要访问 Airbyte UI,首先获取 gcloud SSH 命令。
图片由作者提供。
您将得到与此类似的命令:
gcloud beta 计算 ssh --zone "asia-southeast1-a" "tf-airbyte-demo-airbyte" --project "tf-airbyte-demo"
接下来,将以下内容添加到命令中以在本地端口转发 Airbyte UI:
-- -L 8000:本地主机:8000 -L 8001:本地主机:8001 -N -f
您的最终命令将如下所示:
gcloud beta 计算 ssh --zone "asia-southeast1-a" "tf-airbyte-demo-airbyte" --project "tf-airbyte-demo" -- -L 8000:localhost:8000 -L 8001:localhost:8001 - N-f
请注意: 从 GCP UI 复制后,请务必删除换行符。
如果Airbyte实例已完成启动,您可以通过浏览器访问它 本地主机:8000。 如果没有,请等待五分钟,让实例完成安装。
图片由作者提供。
现在,您可以集成源,使用以下命令添加 BigQuery 目标 空字节_sa_密钥,并立即将您的数据存入 BigQuery。
您可以访问 Airbyte 安装: /空中字节/ 虚拟机内部。
使用 dbt 模型数据
DBT (数据构建工具)是一个使用SQL的强大开源数据转换工具。 它使数据分析师能够完成以前为数据工程师保留的工作。 它还有助于创建一个名为分析工程师的全新职位,它是数据分析师和数据工程师的混合体。 您可以在我的博客中阅读有关该职位的更多信息 此处.
图片由作者提供。
与 Airbyte、Airflow 和 Metabase 不同,您不需要服务器来运行 dbt。 您可以通过访问他们的网站注册一个免费(永久)的 1 席位帐户 官网.
使用 Airflow 协调工作流程
气流 是 Airbnb 创建的经过实践检验的工作流编排工具。 有了现代数据堆栈,希望您不必经常使用 Airflow。 然而,在某些需要定制的情况下,Airflow 可以成为您的首选工具。
要访问 UI,请使用 Airbyte 获取与上一节类似的 SSH 命令。 使用以下命令进行端口转发:
gcloud beta 计算 ssh --zone "asia-southeast1-a" "tf-airbyte-demo-airflow" --project "tf-airbyte-demo" -- -L 8080:localhost:8080 -N -f
现在您可以访问 Airflow 安装: 本地主机:8080。 默认用户名和密码是 管理员 和 管理员.
图片由作者提供。
您可以访问气流安装 /空气流动/ 虚拟机内部。
使用元数据库可视化数据
元数据库 是一个开源数据可视化和发现工具。 它超级用户友好且易于上手。
要访问元数据库 UI,请使用 Airbyte 获取与上一节类似的 SSH 命令。 然后,使用以下命令进行端口转发:
gcloud beta 计算 ssh --zone "asia-southeast1-a" "tf-airbyte-demo-metabase" --project "tf-airbyte-demo" -- -L 3000:localhost:3000 -N -f
图片由作者提供。
清理
为了避免产生任何不必要的成本,请务必通过运行来清理该项目中创建的资源。
地形破坏
警告: 这将删除项目中所有保留的数据和资源。 或者,您也可以关闭未使用的 GCE 以节省成本。
原版。 经许可重新发布。
简介: 阮阮 是数据即服务公司 Joon Solutions 的 CTO。 他的专业经验围绕着构建和管理数据科学团队、分析基础设施和分析用例。 他喜欢将自己对数据分析和云计算的热情结合起来,帮助企业在这个数字时代保持竞争力。 他的兴趣广泛,包括天文学、阅读、音乐和物联网。
相关新闻:
来源:https://www.kdnuggets.com/2021/08/bootstrap-modern-data-stack-terraform.html
- "
- &
- ACCESS
- 账号管理
- 额外
- Airbnb的
- 所有类型
- 分析人士
- 分析
- 阿帕奇
- API
- 架构
- 围绕
- 刊文
- 天文学
- 认证
- 汽车
- 测试
- BigQuery的
- 计费
- 博客
- 板
- 董事会成员
- 边界
- 浏览器
- 建立
- 建筑物
- 企业
- 关心
- 例
- 云端技术
- 云计算
- 云计算平台
- 码
- 公司
- 公司
- 计算
- 计算
- 内容
- 成本
- 创造
- 首席技术官
- data
- 数据访问
- 数据分析
- 数据集成
- 数据科学
- 数据可视化
- 数据仓库
- 数据仓库
- 数据库
- 天
- 深入学习
- 摧毁
- 数字
- 副总经理
- 发现
- 工程师
- 工程师
- 体验
- 姓氏:
- 专注焦点
- 遵循
- 格式
- Free
- 黄金
- 谷歌
- 谷歌云
- 图形处理器
- 指南
- 此处
- 高
- 创新中心
- HTTPS
- 数百
- 杂交种
- IAM
- 图片
- 包含
- 基础设施
- 积分
- 参与
- 物联网
- IT
- 学习用品
- 学习
- 本地
- 当地
- 机器学习
- 制作
- 中等
- ML
- 钱
- 音乐
- 在线
- 打开
- 开放源码
- 检讨
- 附加选项
- 密码
- 性能
- 平台
- 热门
- 项目
- 国家
- 范围
- 阅读
- 减少
- 资源
- 资源
- 运行
- 运行
- 科学
- 科学家
- SDK
- 自助服务
- 特色服务
- 简易
- 解决方案
- 纺
- SQL
- 开始
- 开始
- 留
- 故事
- 产品
- 技术
- 次
- 最佳
- 转型
- 转型
- ui
- 折扣值
- 可视化
- 等待
- 仓库保管
- 什么是
- 工作
- 工作流程
- X
- 年