本教程介绍了如何使用 Cloud Data Fusion 清理、转换和处理客户数据,以便为定位广告系列选择候选定位设置。
使用场景
您要为正在进行的广告系列推广创建自定义营销材料,并希望将这些材料直接分发到客户的家庭邮箱。
您的广告系列受以下两个条件的限制:
- 地点:您只投放给加利福尼亚州、华盛顿州和俄勒冈州的客户。
- 费用:为节省燃油,您投放给车辆易于到达的客户家庭。您只投放给大道沿途客户。
本教程介绍了如何生成广告系列的客户地址列表。在本教程中,您将执行以下操作:
- 清理客户数据:过滤住在加利福尼亚州、华盛顿州或俄勒冈州大道沿途的客户。
- 创建流水线以执行以下操作:
- 将过滤出的客户数据与包含州名缩写的公共数据集进行联接。
- 将已清理和已联接的数据存储在 BigQuery 表格中,您可以使用 BigQuery 网页界面查询这些数据,也可以使用数据洞察分析这些数据。
目标
- 将 Cloud Data Fusion 连接到两个数据源
- 应用基本转换
- 联接两个数据源
- 将输出数据写入接收器
费用
本教程使用 Google Cloud 的以下收费组件:
每次运行本教程时,系统都会运行一个 3 节点(1 个主节点,2 个工作器节点)Dataproc 集群,该集群运行约 6 分钟,将大约 6MB 数据写入 BigQuery。由于您只会在 BigQuery 中存储少量数据,因此在这次估算中,我们将忽略 BigQuery 费用。根据这些数字,您运行此流水线一次的费用可以按以下公式进行近似计算:
总费用 = Cloud Data Fusion 费用 + Dataproc 费用
此公式中的每个组成部分均可按以下方式细分:
Cloud Data Fusion 费用 = (时间 * Cloud Data Fusion 费率)
Dataproc 费用 = (时间 * 虚拟机数量 * (Compute Engine 费率 + Dataproc 费率))
例如,对于 Cloud Data Fusion 中使用默认 Compute Engine 配置文件的 6 分钟作业,请考虑此费用估算,其中 3 个 n1-standard4 虚拟机位于 us-west1 区域:
- 时间 = 0.1 小时
- Data Fusion 费率 = $1.8/小时
- 虚拟机数量 = 3
- Compute Engine 费率 = $0.19/小时/虚拟机
- Dataproc 费率 = $0.0/小时/虚拟机
在费用公式中使用这些值得出本示例的总费用如下:
(0.1 * 1.8) + (0.1 * 3 * (0.1900 + 0.01)) = $0.24(24 美分)
准备工作
-
登录您的 Google 帐号。
如果您还没有 Google 帐号,请注册一个新帐号。
-
在 Google Cloud Console 的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
确保您的 Cloud 项目已启用结算功能。 了解如何确认您的项目是否已启用结算功能。
- 启用 Cloud Data Fusion, Cloud Storage, BigQuery and Cloud Dataproc API。
- 创建 Cloud Data Fusion 实例。
准备客户数据
本教程需要以下两个输入数据集,这些数据集是与您的 Cloud Data Fusion 实例一起提供的:
- 客户数据示例:名为
customers.csv
的 CSV 文件。 - 州名缩写:名为
state_abbreviations
的 BigQuery 表。
加载客户数据
- 转到 Cloud Data Fusion 网页界面。
- 导航到网页界面的 Wrangler 页面。
- 在左侧面板中,点击 Google Cloud Storage 下的示例存储分区。
- 点击 campaign-tutorial。
- 点击 customers.csv。此时将显示客户数据。
清理客户数据
将客户数据解析为表格格式,设置架构,并过滤客户数据以便仅显示您需要的目标受众群体。
解析数据
- 点击 body 列下拉菜单。
- 选择 解析 > CSV。
- 选择逗号作为分隔符后,点击应用。
- 数据会拆分到多列中,因此不再需要原始的 body 列。点击 body 列下拉菜单,然后选择删除列。
设置架构
可通过为表列分配适当的名称来设置数据的架构。请重命名这些列,而不是 bodyXX
,以捕获它们显示的信息。
- 在右侧的列标签中,点击列名称下拉菜单,然后选择设置全部。
- 在批量设置列名称对话框中,输入以下以英文逗号分隔的文本:
Name,StreetAddress,City,State,Country
。 - 点击应用。
对数据进行过滤
对数据进行过滤以仅显示加利福尼亚州、俄勒冈州或华盛顿州的客户。为此,请移除包含这三个州以外的值的所有行。
- 点击州列下拉菜单。
- 选择过滤条件。
在过滤条件窗口中,执行以下操作:
- 点击保留行。
- 在如果下拉菜单中,选择值与正则表达式匹配。
- 输入以下正则表达式:
^(California|Oregon|Washington)$
。 - 点击应用。
州列中的值是“加利福尼亚州”,“俄勒冈州”或“华盛顿州”。
对数据进行过滤以仅显示大道沿途客户。为此,请仅保留包含字符串“avenue”的地址。
- 在 StreetAddress 列的左侧,点击向下箭头并选择过滤条件。
- 在如果下拉菜单中,选择值包含,然后输入
Avenue
。 - 选择忽略大小写。
在对整个数据集执行并行处理作业之前,Wrangler 只会显示数据集的前 1000 个值。由于您对某些数据进行了过滤,因此只有少数客户会保留在 Wrangler 显示中。
创建流水线
您已清理数据,并已对部分数据运行了转换。您现在可以创建批量流水线,以对整个数据集运行转换。
- 在 Wrangler 的右上角,点击创建流水线。
- 选择批处理流水线。您将进入“流水线 Studio”页面。
- 在左上角,确保数据流水线 - 批处理显示为流水线类型。
在“流水线 Studio”画布中,GCSFile
源节点连接到 Wrangler
节点。

您在 Wrangler 视图中应用的所有转换都显示在“流水线 Studio”画布的 Wrangler
节点中。要查看您应用的转换,请将鼠标指针放在 Wrangler
节点上,然后点击属性。
在配置参数下,将显示您应用的转换。

您可以通过点击 Wrangle 来应用更多转换。这会使您返回 Wrangler 页面。当您回到“流水线 Studio”视图中的节点属性时,您将看到自己添加的新转换。
例如,您发现不需要国家/地区列,因为其值始终为“美国”。请按以下步骤删除此列:
- 点击 Wrangler。
- 点击国家/地区旁边的下拉菜单,然后选择删除列。
- 点击应用。此操作会关闭 Wrangler 视图,并返回到“流水线 Studio”中的“Wrangler 属性”窗口。在配置参数部分下会显示
drop Country
。 - 点击 X 按钮。
缩写州名
运送车辆的导航系统只能识别包含州名缩写(例如 CA,而非 California)的地址,目前,您的客户数据包含的是完整州名。
公共的 BigQuery state_abbreviations
表格包含两列:一个完整州名列,一个州名缩写列。
您将使用此表格更新客户数据中的州名。
在 BigQuery 中查看州名数据
- 在单独的标签页中,打开 Cloud Console 中的 BigQuery 界面。
在查询编辑器中输入以下查询,然后点击运行。
SELECT * FROM `dis-user-guide.campaign_tutorial.state_abbreviations`
访问 BigQuery 表
在流水线中添加来源以访问此 BigQuery state_abbreviations
表。
- 回到 Cloud Data Fusion 标签,在“流水线 Studio”的左侧插件部分中,点击来源。
- 点击 BigQuery。
一个 BigQuery 源节点会与其他两个节点一起显示在画布上。
- 将鼠标指针放在 BigQuery 源节点上,然后点击属性。
- 在参考名称下,输入
state_abbreviations
。 - 在数据集项目 ID 名称下,输入
dis-user-guide
。 - 在数据集下,输入
campaign_tutorial
。 - 在表下,输入
state_abbreviations
。
- 在参考名称下,输入
- 要从 BigQuery 填充此表的架构,请点击获取架构。
- 点击 X 按钮。
联接两个数据源
联接两个数据源(客户数据和州名缩写),以生成包含客户状态数据和州名缩写的输出。
- 在“流水线 Studio”的左侧插件部分中,点击分析。
- 点击连接符。
画布上会显示一个
Joiner
节点,其代表类似于 SQL 联接的操作。 - 要将 Wrangler 节点和 BigQuery 节点连接到
Joiner
节点:请拖动源节点右边缘的连接箭头并放置在目标节点上。 - 将鼠标指针放在
Joiner
节点上,然后点击属性。- 在联接下,展开 Wrangler 和 BigQuery。
- 取消选择 Wrangler 下的州字段以及 BigQuery 下的名称字段,因为您只需要州名缩写而非完整州名。
- 为了方便识别,在 BigQuery 下,请将缩写字段的别名更改为
State
。
- 在联接类型下,将值保留为外部。在必填下,选择 Wrangler。
- 在联接条件下,将联接条件设置为将
Wrangler
节点中的State
列联接到BigQuery
节点中的name
列。 - 生成最终联接的架构。点击获取架构。
- 点击 X 按钮。
- 在联接下,展开 Wrangler 和 BigQuery。
将输出存储到 BigQuery
将流水线的结果存储到 BigQuery 表中。 您存储数据的位置称为接收器。
- 在“流水线 Studio”的左侧插件部分中,点击接收器。
- 点击 BigQuery 表。
- 将
Joiner
节点连接到BigQuery Table
节点。 - 将鼠标指针放在
BigQuery Table
节点上,然后点击属性。- 在参考名称下,输入
customer_data_abbreviated_states
。 - 在数据集下,输入
dis_user_guide
。 - 在表下,选择
customer_data_abbreviated_states
。 - 点击 X 按钮。
- 在参考名称下,输入
部署并运行流水线
- 在“流水线 Studio”中,点击为流水线命名,然后输入
CampaignPipeline
。 - 在右上角点击部署。
- 部署完成后,点击运行。运行流水线可能需要几分钟时间。在等待期间,您可以观察到流水线的状态从“正在预配”依次转换为“正在启动”、“正在运行”、“正在取消预配”、“成功”。
查看结果
- 在 BigQuery 界面中查询
campaign_targets
表。 - 将以下查询中的项目名称更新为您自己的项目名称。
清理
为避免因本教程中使用的资源而导致您的 Google Cloud Platform 帐号产生费用,请执行以下操作:
删除项目
为了避免产生费用,最简单的方法是删除您为本教程创建的项目。
要删除项目,请执行以下操作:
- 在 Cloud Console 中,转到管理资源页面。
- 在项目列表中,选择要删除的项目,然后点击删除。
- 在对话框中输入项目 ID,然后点击关闭以删除项目。
删除 Cloud Data Fusion 实例
请按照以下说明删除 Cloud Data Fusion 实例。
删除 BigQuery 数据集
要删除您在本教程中创建的 BigQuery 数据集,请执行以下操作:
- 在 Cloud Console 中,转到 BigQuery 页面。
- 选择
dis_user_guide
数据集。 - 点击 delete 删除数据集。
后续步骤
- 详细了解 Cloud Data Fusion。
- 阅读方法指南。