GTM智能引擎:高增长信号管道
使用GCP bucket、Bruin和Bigquery构建GTM管道,用于生产级数据工程。一切都是代码。
问题:“信噪比”差距
在现代市场营销(GTM)运营中,销售团队淹没在“过时”或“通用”的潜在客户名单中。标准数据库(Apollo/ZoomInfo)往往落后于现实世界的增长事件。
该项目解决了“集成墙”问题 通过建立生产级数据工程基础,识别 高增长意向信号 (例如,特定的技术采用或招聘激增)直接从原始数据集中提取,为自主AI代理做好准备。
______________________________________________________________________
“关系基础”优势
与依赖通用公司名称的基本AI外展工具不同,该引擎使用 结构化意图CSV 作为事实的来源(这里是2026年3月Builtin jobs的真实数据集 structured_jobs.csv 用作关键字提取和“关系基础”的真相来源)。
为什么这对GTM很重要:
- 技术堆栈对齐: 我们不仅找到了“OpenAI”;通过将OpenAI的招聘要求与他们的实际工程活动相匹配,我们发现了“OpenAI对分布式系统的兴趣”。
- 综合评分: 引擎通过连接不同的信号(直接信号与隐含信号)来计算“高增长分数”。
- 精密过滤: 通过使用CSV作为查找表,我们减少了“API噪音”,并确保富集信贷仅用于具有经验证的招聘预算的账户。
______________________________________________________________________
2026技术栈(一切皆代码)
- 基础设施: 地形 (GCP)-管理BigQuery和GCS。
- 编排和转换: 棕色 -用于摄取和SQL/Python转换的单个二进制工具。
- 数据仓库: 谷歌BigQuery(按日期分区,按公司聚类)。
- 可视化: Apache超级集 (预设)-基于语义层的仪表板。
______________________________________________________________________
数据架构
- 摄入(Datalake): 原始数据(GitHub Archive)通过Bruin Python任务提取,并作为Parquet存储在 格拉斯哥昏迷量表.
- 仓库(DWH): 数据注册为 BigQuery 外部桌子。
- 转型: Bruin SQL任务计算增长指标并提取公司名称。
- 语义层: 数据暴露给Superset进行可视化。
______________________________________________________________________
成本意识工程(自由层策略)
该项目旨在运行 完全在谷歌云“永远免费”层内.
数据流和成本:
- 摄入: 查询GitHub Archive公共数据集(免费层:每月前1TB)。
- 原料储存: GCS中的拼花游戏文件(免费层:最多5GB
us-central1). - 分析: BigQuery表(免费层:第一个10GB存储,1TB查询处理)。
技术限制和“Gotchas”
- GCP地区: 使用
us-central1免费等级资格。 - BigQuery沙盒: 表格可能有60天的有效期;重新运行幂等管道以重新创建。
- 数据湖生命周期: Terraform中的30天自动删除规则可防止存储过剩。
______________________________________________________________________
数据工程Zoomcamp 2026要求
以下是我们如何考虑每项要求的技术细分:
项目架构
┌────────────────┐ ┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ Data Source │ │ Orchestration │ │ Data Lake │ │ Data Warehouse │
│(GitHub Archive)│ │ (Bruin CLI) │ │ (Google CS) │ │ (Google BigQuery)│
└──────┬─────────┘ └────────┬─────────┘ └────────┬─────────┘ └────────┬─────────┘
│ │ │ │
│ 1. Extract (Python) │ │ │
└────────────────────────>│ 2. Load (Parquet) │ │
├────────────────────────>│ │
│ │ 3. Register Ext Table │
││
│ │ │
│ 4. Transform (SQL) │ │
├─────────────────────────┴────────────────────────>│
│ │
│ 5. Visualize (Preset.io) │
└──────────────────────────────────────────────────>│
▼
[Public Dashboard]满足详细标准
- 问题描述:定义见第一节。我们通过让人工智能代理参与现场工程活动来解决GTM的“集成墙”问题。
- 云和IaC:
- 云:所有数据处理(存储、DWH)都在谷歌云平台中进行。 - 基础设施即代码:环境可通过以下方式100%再现 地形 (参见 /terraform 文件夹)。
- 数据摄入(批量):
- 流动: GitHub Archive API -> Python (Polars/Pandas) -> GCS (Standard). - 自动化:Bruin处理重试、依赖性检查和参数化(例如。, --start-date).
- 数据仓库:
- 存储:数据在地面军事系统上存储为Hive分区的Parquet,并通过以下方式公开 BigQuery外部表. - 优化:决赛 fct_growth_signals 桌子是 分区 通过 signal_date 和 集群式 通过 company_name 以最小化扫描量和成本。
- 变换:
- 用途 棕色 SQL (dbt等效)用于模块化、可测试的基于SQL的建模。 - 逻辑包括重复数据删除、公司名称提取和意图优先级评分。
- 可视化/仪表板:
- 托管于 预设.io. - 包括“前100名”排行榜和时间信号密度分析。
- 再现性:
- 按照以下第1-6阶段的分步说明进行操作。 - 该项目使用 uv 用于依赖关系管理和 bruin 对于单个二进制设置。
______________________________________________________________________
第一阶段:基础设施和证书
1.GCP凭据设置
在运行管道之前,请设置本地环境:
# 1. Login to the CLI
gcloud auth login
# 2. Login for Application Default Credentials (ADC)
gcloud auth application-default login
# 3. Set your project
gcloud config set project YOUR_PROJECT_ID
gcloud auth application-default set-quota-project YOUR_PROJECT_ID2.启用API
gcloud services enable \
bigquery.googleapis.com \
bigquerystorage.googleapis.com \
storage.googleapis.com \
storage-api.googleapis.com3.部署基础设施(Terraform)
cd terraform
terraform init
terraform plan -var="project_id=YOUR_PROJECT_ID" -out=tfplan
terraform apply "tfplan"______________________________________________________________________
第二阶段:管道配置(布鲁因)
1.环境变量(.env)
创建一个 .env 根目录中的文件:
GCP_PROJECT_ID=YOUR_PROJECT_ID
DATA_LAKE_BUCKET=YOUR_PROJECT_ID-data-lake
BIGQUERY_DATASET=gtm_intelligence_dwh2.执行流水线
在特定日期运行端到端流:
# Validate the DAG
bruin validate .
# Run everything - pipeline is idempotent and parameterizable for a given date
bruin run . --start-date 2026-03-19______________________________________________________________________
GTM情报任务(第3-5阶段)
摄入外壳: assets/ingest_github_signals.py
- 获取技术关键字的信号(WatchEvent、PushEvent)。
- 使用Hive分区上传到GCS存储桶(
date=YYYY-MM-DD). - 自动管理BigQuery外部表。
转型: assets/fct_growth_signals.sql
- 从存储库路径中提取公司名称。
- 物化
fct_growth_signals桌子。 - 分区:
signal_date. - 聚类:
company_name,event_type.
______________________________________________________________________
第6阶段:可视化(超级集)
我们使用 预设.io (Managed Superset)公开我们的仪表板。
1.创建GCP服务帐户
预设需要服务帐户JSON密钥:
- 首选 IAM和管理>服务帐户 在GCP控制台中。
- 创建账户
superset-viewer. - 授予角色:
- 如果您计划使用预设进行只读访问,请授予
BigQuery Data Viewer,BigQuery Metadata Viewer,BigQuery Read Session User和BigQuery Job User角色应该足够了。 - 如果您还想在预设中执行DML查询,请授予
BigQuery Data Editor角色也是。
- 生成并下载 JSON密钥.
2.将预设连接到BigQuery
- 免费注册 预设 账户
- 连接数据库>谷歌BigQuery。
- 上传您的服务帐户JSON。
- 数据集:
gtm_intelligence_dwh. - IP允许列表。出于安全原因,您可能需要允许预设
公共IP: 35.161.45.11 / 52.32.136.34 / 54.244.23.85
仪表板作为代码
对视觉效果进行版本控制:
- 将您的仪表板从预设导出为ZIP/YAML。
- 保存在
/dashboards目录。 - 请参阅\[仪表板/README.md\](file:///c:/tmp/gtm-管道gcp数据湖bq-bruin-duckdb超集mcp反重力/仪表板/README.md)获取信息。
仪表板图形的外观
由于我找不到一个好的方法为Preset.io的仪表板创建公共网络链接,我截取了仪表板的屏幕截图并将其保存在 /dashboards 目录。
例如:
前100名图表: image
______________________________________________________________________
幸福大厦!
