bob体育客户端下载平台的博客">
            <noscript>
             <img data-gatsby-image-ssr=

如何建立一个营销分析解决方案使用Fivetran和dbt在Databricks湖屋

分享这篇文章

营销团队使用许多不同的平台来推动营销和销售活动,这可以产生大量有价值但bob体育客户端下载互不关联的数据。将所有这些数据结合在一起可以帮助驱动一个巨大的投资回报,如图所示阳狮集团(Publicis Groupe他们能将竞选收入增加50%

Databricks Lakehouse将数据仓库和AI用例统一在一个平台上,是构建营销分析解决方案的理想场所:我们维护单一的真相来源,并解锁AI/ML用例。bob体育客户端下载我们还利用两个Databricks合作伙伴解决方案,Fivetran和dbt,以解锁广泛的营销分析用例,包括流失和生命周期价值分析客户细分,广告效果

Fivetran和dbt可以使用Databricks集群或Databricks SQL仓库对Delta Lake进行读写

Fivetran允许您轻松地从50多个营销平台获取数据到Delta Lake,而不需要建立和维护复杂的管道。bob体育客户端下载如果任何营销平台的api发生变化或中断,Fivebob体育客户端下载tran将负责更新和修复集成,以便您的营销数据能够源源不断地流入。

dbt是一个流行的开源框架,允许lbob下载地址akehouse用户使用简单的SQL构建数据管道。所有内容都以纯文本的形式组织在目录中,从而简化了版本控制、部署和可测试性。一旦数据被输入Delta Lake,我们使用dbt来转换、测试和记录数据。经过改造的营销分析数据集市建立在摄入的数据之上,然后准备用于帮助推动新的营销活动和计划。

Fivetran和dbt都是Databricks的一部分合作伙伴联系Databricks是一个一站式门户网站,可直接在Databricks平台内发现并安全地连接数据、分析和人工智能工具。bob体育客户端下载只需几次单击,您就可以在Databricks工作空间中直接配置和连接这些工具(以及更多工具)。

如何构建营销分析解决方案

在这个动手演示中,我们将展示如何使用Fivetran将Marketo和Salesforce数据导入Databricks,然后使用dbt来转换、测试和记录您的营销分析数据模型。

演示的所有代码都可以在Github的workflows-examples库

显示数据源和模型的DBT沿袭图"src=
显示数据源和模型的DBT沿袭图

最终的dbt模型谱系图将如下所示。左边是绿色的Fivetran源表,右边是最终的营销分析模型。通过选择一个模型,您可以看到与不同模型相对应的依赖关系,用紫色突出显示。

使用Fivetran进行数据摄取

Fivetran有许多营销分析数据源连接器"src=
Fivetran有许多营销分析数据源连接器

在Fivetran中创建新的Salesforce和Marketo连接,开始将营销数据输入Delta Lake。当创建连接时,Fivetran也会自动创建和管理模式Delta Lake中的每个数据源。稍后我们将使用dbt来转换、清理和聚合这些数据。

在Delta Lake中为Salesforce数据源定义一个目标模式"src=
在Delta Lake中为Salesforce数据源定义一个目标模式

对于演示,命名将在Delta Lake marketing_salesforce和marketing_marketo中创建的模式。如果模式不存在,Fivetran将创建它们作为初始摄取负载的一部分。

选择将哪些数据源对象同步为Delta Lake表"src=
选择将哪些数据源对象同步为Delta Lake表

然后,您可以选择将哪些对象同步到Delta Lake,其中每个对象将被保存为单独的表。Fivetran还使管理和查看每个表的同步列变得简单:

Fivetran监控仪表板监控每月活动行同步"src=
Fivetran监控仪表板监控每月活动行同步

此外,Fivetran还提供了一个监控仪表板来分析数量月活动行数的数据,以及其他有用的统计数据和日志,每天和每月同步每个表。

使用dbt进行数据建模

现在所有的营销数据都在Delta Lake中,您可以按照以下步骤使用dbt创建数据模型

在本地安装dbt项目并连接到Databricks SQL

在所选IDE中设置本地dbt开发环境,方法如下dbt Core和dbt-databricks的设置说明

脚手架一个新的dbt项目,并连接到一个Databricks SQL仓库使用DBT init,它将询问以下信息。

$ DBT init输入名称你的项目(字母,数字,下划线):你会选择哪个数据库就像使用?1)砖2]火花输入一个数字:1主机(yourorg.www.neidfyre.com):http_path HTTP路径:令牌(dapiXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX):模式(默认的DBT将构建对象的模式):线程(1(更多)1]:

配置概要文件后,您可以使用以下方法测试连接:

$ DBT调试

安装Fivetran dbt模型包进行登台

使用Marketo和Salesforce数据的第一步是创建表作为我们模型的源。幸运的是,Fivetran已经让这很容易启动和运行与他们的预构建Fivetran dbt模型包。对于这个演示,让我们使用marketo_sourcesalesforce_source包。

要安装软件包,只需添加一个packages.yml文件到DBT项目的根目录,并添加marketo-sourcesalesforce-sourcefivetran-utils包:

包:-: dbt-labs / spark_utils版本:0.3比上年-: fivetran / marketo_source版本:[“> = 0.7.0”“= 0.4.0”下载并使用运行的包
$ DBT deps

你现在应该看到在packages文件夹中安装了Fivetran包。

更新dbt_project。yml为Fivetran dbt模型

有一些配置dbt_project.yml你需要修改这个文件,以确保Fivetran包在Databricks上正确工作。

dbt_project.yml文件可以在DBT项目的根文件夹中找到。

Spark_utils覆盖dbt_utils宏

Fivetran dbt模型使用宏dbt_utils包,但这些宏中的一些需要修改,以与Databricks工作,这是很容易做到使用spark_utils包中。

它通过为某些dbt_utils宏提供shims来工作,您可以使用调度配置在dbt_project中。当从dbt_utils命名空间解析宏时,DBT将首先在spark_utils包中搜索宏。

调度—macro_namespace: dbt_utilssearch_order:【“spark_utils”“dbt_utils”

marketo_source和salesforce_source模式的变量

Fivetran包要求你定义目录(在dbt中称为数据库)和模式Fivetran接收数据时的位置。

将这些变量添加到dbt_project中。Yml文件,使用正确的目录和模式名称。默认目录为hive_metastore如果_database为空,将使用它。模式名将是你在Fivetran中创建连接时定义的。

varmarketo_source:marketo_database:# leave blank使用默认的hive_metastore目录marketo_schema: marketing_marketosalesforce_source:salesforce_database:# leave blank使用默认的hive_metastore目录salesforce_schema: marketing_salesforce

Fivetran分期模型的目标模式

为了避免所有由Fivetran源模型在默认目标模式中创建的staging表,可以定义一个单独的staging模式。

在dbt_project中。Yml文件添加登台模式名,然后将其添加到默认模式名的后缀。

模型:marketo_source:+模式:your_staging_name使用默认的target_schemasalesforce_source:+模式:your_staging_name使用默认的target_schema

基于以上,如果您的目标模式定义在概要文件中。yml是mkt_analytics,用于marketo_source和salesforce_source表的模式将为mkt_analytics_your_staging_name

禁用缺失的表

在这个阶段,你可以运行Fivetran模型包来测试它们是否正确工作。

DBT运行-选择marketo_source
DBT运行-选择salesforce_source

如果任何一个模型由于丢失表而失败,因为你选择不同步那些在Fivetran中的表,那么在你的源模式中,你可以通过更新dbt_project.yml文件。

例如,如果电子邮件反弹和电子邮件模板表从Marketo源模式中丢失,您可以通过在模型配置下添加以下内容来禁用这些表的模型:

模型marketo_source:+模式:your_staging_nametmpstg_marketo__activity_email_bounced_tmp:+启用:stg_marketo__email_template_history_tmp+启用:stg_marketo__activity_email_bounced+启用:stg_marketo__email_template_history+启用:

开发市场分析模型

DBT沿袭图显示星型模式和聚合表数据模型"src=
DBT沿袭图显示星型模式和聚合表数据模型

现在Fivetran包已经负责创建和测试登台模型,您可以开始为您的营销分析用例开发数据模型,这将是一个星型模式数据模型以及物化聚合表。

例如,对于第一个营销分析仪表板,您可能希望通过他们打开和点击的电子邮件活动的数量来查看某些公司和销售区域的参与度。

为此,您可以使用Salesforce用户电子邮件,Salesforce account_id和Marketo lead_id来连接Salesforce和Marketo表。

模型将按照以下方式在mart文件夹下进行结构化。

marketing_analytics_demo|——dbt_project.yml|——packages.yml|——模型|——集市|——核心|——中间|——marketing_analytics

你可以在Github中查看所有模型的代码/模型/集市目录和下面描述了每个文件夹中的内容以及一个示例。

核心模型

核心模型是事实和维度表,所有下游模型都将在它们的基础上进行构建。

dim_user模型的dbt SQL代码

salesforce_users作为选择account_id,电子邮件{{裁判“stg_salesforce__user”)}}在哪里电子邮件account_id),marketo_users作为选择lead_id,电子邮件{{裁判“stg_marketo__lead”)}}),加入作为选择lead_id,account_idsalesforce_users加入marketo_userssalesforce_users.emailmarketo_users.email选择加入

您还可以使用文件夹中的yaml文件为模型添加文档和测试。

中有两个简单的测试core.yml已添加的文件

版本2模型—name: dim_account描述“帐目维度表”—name: account_id描述“主键”测试——not_null—name: dim_user描述“用户维度表”—name: lead_id描述“主键”测试——not_null

中间模型

一些最终的下游模型可能依赖于相同的计算指标,因此为了避免重复SQL,您可以创建可重用的中间模型。

int_email_open_clicks_joined模型的dbt SQL代码:

打开作为select *{{ref (“fct_email_opens”)}}),点击作为select *{{ref (“fct_email_clicks”)}}), opens_clicks_joined作为
              选择o.lead_id作为lead_id,o.campaign_id作为campaign_id,o.email_send_id作为email_send_id,o.activity_timestamp作为open_ts,c.activity_timestamp作为click_ts打开作为o左连接单击作为cOn o.email_send_id = c.email_send_id和o.lead_id = c.lead_id
              select *opens_clicks_joined

营销分析模型

这些是最终的市场分析模型,将用于推动市场和销售团队使用的仪表板和报告。

country_email_engagement模型的dbt SQL代码:

账户作为选择account_id,billing_country{{裁判“dim_account”)}}),用户作为选择lead_id,account_id{{裁判“dim_user”)}}), opens_clicks_joined作为选择{{裁判“int_email_open_clicks_joined”)}}),加入作为选择用户作为u加入账户作为一个u.account_ida.account_id加入opens_clicks_joined作为ocu.lead_idoc.lead_id
              选择billing_country作为的国家,(open_ts)作为打开时,(click_ts)作为点击,(click_ts)/(open_ts)作为click_ratio加入集团通过国家

运行并测试dbt模型

现在您的模型已经准备好了,您可以运行所使用的所有模型

$ DBT运行

然后使用。运行测试

$ DBT测试

查看dbt文档和沿袭图

营销分析模型的DBT谱系图"src=
营销分析模型的DBT谱系图

一旦你的模型成功运行,你可以生成文档和谱系图使用

$ DBT文档生成

然后查看它们在本地运行

$ DBT文档服务

将dbt模型部署到生产环境

一旦您在本地开发并测试了dbt模型,您就有多个选项可以将其部署到生产环境中,其中之一就是Databricks Workflows(私有预览)中的新的dbt任务类型。

您的dbt项目应该在Git存储库中进行管理和版本控制。您可以在Databricks Workflows作业中创建一个指向Git存储库的dbt任务。

在Databricks工作流中使用dbt任务类型来编排dbt"src=
在Databricks工作流中使用dbt任务类型来编排dbt

当您在dbt项目中使用包时,第一个命令应该是印度生物技术部deps紧随其后的是印度生物技术部运行第一个任务,然后印度生物技术部测试下一个任务。

Databricks带有两个依赖dbt任务的工作流作业"src=
Databricks带有两个依赖dbt任务的工作流作业

然后,您可以使用run now立即运行工作流,还可以为dbt项目设置一个计划,使其按照指定的计划运行。

查看每次dbt运行的dbt日志"src=
查看每次dbt运行的dbt日志

对于每次运行,您都可以看到每个dbt命令的日志,帮助您调试和修复任何问题。

用Fivetran和dbt为您的营销分析提供动力

如图所示,使用Fivetran和dbt以及Databricks Lakehouse平台,您可以轻松构建一个强大的营销分析解决方案,易于设置,管理bob体育客户端下载和足够灵活,以满足您的任何数据建模需求。

要开始构建自己的解决方案,请访问集成文档Fivetran印度生物技术部与数据库和重复使用Marketing_analytics_demo项目示例快速开始。

Databricks Workflows中的dbt任务类型处于私有预览状态。要尝试dbt任务类型,请联系您的Databricks帐户主管。

免费试用Databricks

相关的帖子

看到所有产品的帖子