定位广告系列流水线

本教程介绍了如何使用 Cloud Data Fusion 清理、转换和处理客户数据,以便为定位广告系列选择候选定位设置。

使用场景

您要为正在进行的广告系列推广创建自定义营销材料,并希望将这些材料直接分发到客户的家庭邮箱。

您的广告系列受以下两个条件的限制:

  • 地点:您只投放给加利福尼亚州、华盛顿州和俄勒冈州的客户。
  • 费用:为节省燃油,您投放给车辆易于到达的客户家庭。您只投放给大道沿途客户。

本教程介绍了如何生成广告系列的客户地址列表。在本教程中,您将执行以下操作:

  1. 清理客户数据:过滤住在加利福尼亚州、华盛顿州或俄勒冈州大道沿途的客户。
  2. 创建流水线以执行以下操作:
    • 将过滤出的客户数据与包含州名缩写的公共数据集进行联接。
    • 将已清理和已联接的数据存储在 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 Cloud 新用户可能有资格申请免费试用

准备工作

  1. 登录您的 Google Cloud 帐号。如果您是 Google Cloud 新手,请创建一个帐号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 的项目选择器页面上,选择或创建一个 Google Cloud 项目。

    转到“项目选择器”

  3. 确保您的 Cloud 项目已启用结算功能。 了解如何确认您的项目是否已启用结算功能

  4. 启用 Cloud Data Fusion, Cloud Storage, BigQuery and Cloud Dataproc API。

    启用 API

  5. 创建 Cloud Data Fusion 实例

准备客户数据

本教程需要以下两个输入数据集,这些数据集是与您的 Cloud Data Fusion 实例一起提供的:

  • 客户数据示例:名为 customers.csv 的 CSV 文件。
  • 州名缩写:名为 state_abbreviations 的 BigQuery 表。

加载客户数据

  1. 转到 Cloud Data Fusion 网页界面。
  2. 导航到网页界面的 Wrangler 页面。
  3. 在左侧面板中,点击 Google Cloud Storage 下的示例存储桶
  4. 点击 campaign-tutorial
  5. 点击 customers.csv。此时将显示客户数据。

清理客户数据

将客户数据解析为表格格式,设置架构,并过滤客户数据以便仅显示您需要的目标受众群体。

解析数据

  1. 点击 body 列下拉菜单。
  2. 选择 解析 > CSV
  3. 选择逗号作为分隔符后,点击应用图片
  4. 数据会拆分到多列中,因此不再需要原始的 body 列。点击 body 列下拉菜单,然后选择删除列

设置架构

可通过为表列分配适当的名称来设置数据的架构。请重命名这些列,而不是 bodyXX,以捕获它们显示的信息。

  1. 在右侧的标签页中,点击列名称下拉菜单,然后选择设置全部
  2. 批量设置列名称对话框中,输入以下以英文逗号分隔的文本:Name,StreetAddress,City,State,Country
  3. 点击应用

对数据进行过滤

对数据进行过滤以仅显示加利福尼亚州、俄勒冈州或华盛顿州的客户。为此,请移除包含这三个州以外的值的所有行。

  1. 点击列下拉菜单。
  2. 选择过滤条件
  3. 在过滤条件窗口中,执行以下操作:

    1. 点击保留行
    2. 如果下拉菜单中,选择值与正则表达式匹配
    3. 输入以下正则表达式:^(California|Oregon|Washington)$
    4. 点击应用

    列中的值是“加利福尼亚州”,“俄勒冈州”或“华盛顿州”。

对数据进行过滤以仅显示大道沿途客户。为此,请仅保留包含字符串“avenue”的地址。

  1. StreetAddress 列的左侧,点击向下箭头并选择过滤条件
  2. 如果下拉菜单中,选择值包含的内容,然后输入 Avenue
  3. 选择忽略大小写

在对整个数据集执行并行处理作业之前,Wrangler 只会显示数据集的前 1000 个值。由于您对某些数据进行了过滤,因此只有少数客户会保留在 Wrangler 显示中。

创建流水线

您已清理数据,并已对部分数据运行了转换。您现在可以创建批量流水线,以对整个数据集运行转换。

  1. 在 Wrangler 的右上角,点击创建流水线
  2. 选择批处理流水线。您将进入“流水线 Studio”页面。
  3. 在左上角,确保数据流水线 - 批处理显示为流水线类型。

在“流水线 Studio”画布中,GCSFile 源节点连接到 Wrangler 节点。

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

您可以通过点击 Wrangle 来应用更多转换。这会使您返回 Wrangler 页面。当您回到“流水线 Studio”视图中的节点属性时,您将看到自己添加的新转换。

例如,您发现不需要国家/地区列,因为其值始终为“美国”。请按以下步骤删除此列:

  1. 点击 Wrangler
  2. 点击国家/地区旁边的向下箭头,然后选择删除列
  3. 点击应用。此操作会关闭 Wrangler 视图,并返回到“流水线 Studio”中的“Wrangler 属性”窗口。在指令部分下会显示 drop Country
  4. 点击 X 按钮。

缩写州名

运送车辆的导航系统只能识别包含州名缩写(例如 CA,而非 California)的地址,目前,您的客户数据包含的是完整州名。

公共的 BigQuery state_abbreviations 表格包含两列:一个完整州名列,一个州名缩写列。 您将使用此表格更新客户数据中的州名。

在 BigQuery 中查看州名数据

  1. 在单独的标签页中,打开 Cloud Console 中的 BigQuery 界面。

    转到 BigQuery 界面

  2. 在查询编辑器中输入以下查询,然后点击运行

    SELECT * FROM `dis-user-guide.campaign_tutorial.state_abbreviations`
    

访问 BigQuery 表

在流水线中添加来源以访问此 BigQuery state_abbreviations 表。

  1. 回到 Cloud Data Fusion 标签,在“流水线 Studio”的左侧插件部分中,点击来源
  2. 点击 BigQuery

    一个 BigQuery 源节点会与其他两个节点一起显示在画布上。

  3. 将鼠标指针放在 BigQuery 源节点上,然后点击属性
    1. 参考名称下,输入 state_abbreviations
    2. 数据集项目 ID 名称下,输入 dis-user-guide
    3. 数据集下,输入 campaign_tutorial
    4. 下,输入 state_abbreviations
  4. 要从 BigQuery 填充此表的架构,请点击获取架构
  5. 点击 X 按钮。

联接两个数据源

联接两个数据源(客户数据和州名缩写),以生成包含客户状态数据和州名缩写的输出。

  1. 在“流水线 Studio”的左侧插件部分中,点击分析
  2. 点击连接符

    画布上会显示一个 Joiner 节点,其代表类似于 SQL 联接的操作。

  3. 要将 Wrangler 节点和 BigQuery 节点连接到 Joiner 节点:请拖动源节点右边缘的连接箭头并放置在目标节点上。
  4. 将鼠标指针放在 Joiner 节点上,然后点击属性
    1. 联接下,展开 WranglerBigQuery
      1. 取消选择 Wrangler 下的字段以及 BigQuery 下的名称字段,因为您只需要州名缩写而非完整州名。
      2. 为了方便识别,在 BigQuery 下,请将缩写字段的别名更改为 State
    2. 联接类型下,将值保留为外部。在所需输入下,选择 Wrangler
    3. 联接条件下,将联接条件设置为将 Wrangler 节点中的 State 列联接到 BigQuery 节点中的 name 列。
    4. 生成最终联接的架构。点击获取架构
    5. 点击 X 按钮。

将输出存储到 BigQuery

将流水线的结果存储到 BigQuery 表中。 您存储数据的位置称为接收器。

  1. 在“流水线 Studio”的左侧插件部分中,点击接收器
  2. 点击 BigQuery 表
  3. Joiner 节点连接到 BigQuery Table 节点。
  4. 将鼠标指针放在 BigQuery Table 节点上,然后点击属性
    1. 参考名称下,输入 customer_data_abbreviated_states
    2. 数据集下,输入 dis_user_guide
    3. 下,选择 customer_data_abbreviated_states
    4. 点击 X 按钮。

部署并运行流水线

  1. 在“流水线 Studio”中,点击为流水线命名,然后输入 CampaignPipeline
  2. 在右上角点击部署
  3. 部署完成后,点击运行。运行流水线可能需要几分钟时间。在等待期间,您可以观察到流水线的状态正在预配依次转换为正在启动正在运行正在取消预配成功

查看结果

  1. 在 BigQuery 界面中查询 campaign_targets 表。

    转到 BigQuery 界面

  2. 将以下查询中的项目名称更新为您自己的项目名称。

清除数据

为避免因本教程中使用的资源导致您的 Google Cloud 帐号产生费用,请删除包含这些资源的项目,或者保留项目但删除各个资源。

删除项目

为了避免产生费用,最简单的方法是删除您为本教程创建的项目。

要删除项目,请执行以下操作:

  1. 在 Cloud Console 中,转到管理资源页面。

    转到“管理资源”

  2. 在项目列表中,选择要删除的项目,然后点击删除
  3. 在对话框中输入项目 ID,然后点击关闭以删除项目。

删除 Cloud Data Fusion 实例

请按照以下说明删除 Cloud Data Fusion 实例

删除 BigQuery 数据集

要删除您在本教程中创建的 BigQuery 数据集,请执行以下操作:

  1. 在 Cloud Console 中,转到 BigQuery 页面。

    转到 BigQuery 页面

  2. 选择 dis_user_guide 数据集。
  3. 点击 删除数据集

后续步骤