营销团队使用许多不同的平台来推动营销和销售活动,这可以产生大量有价值但bob体育客户端下载互不关联的数据。将所有这些数据结合在一起可以帮助驱动一个巨大的投资回报,如图所示阳狮集团(Publicis Groupe他们能将竞选收入增加50%
Databricks Lakehouse将数据仓库和AI用例统一在一个平台上,是构建营销分析解决方案的理想场所:我们维护单一的真相来源,并解锁AI/ML用例。bob体育客户端下载我们还利用两个Databricks合作伙伴解决方案,Fivetran和dbt,以解锁广泛的营销分析用例,包括流失和生命周期价值分析,客户细分,广告效果.
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模型谱系图将如下所示。左边是绿色的Fivetran源表,右边是最终的营销分析模型。通过选择一个模型,您可以看到与不同模型相对应的依赖关系,用紫色突出显示。
使用Fivetran进行数据摄取
在Fivetran中创建新的Salesforce和Marketo连接,开始将营销数据输入Delta Lake。当创建连接时,Fivetran也会自动创建和管理模式Delta Lake中的每个数据源。稍后我们将使用dbt来转换、清理和聚合这些数据。
对于演示,命名将在Delta Lake marketing_salesforce和marketing_marketo中创建的模式。如果模式不存在,Fivetran将创建它们作为初始摄取负载的一部分。
然后,您可以选择将哪些对象同步到Delta Lake,其中每个对象将被保存为单独的表。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_source而且salesforce_source包。
要安装软件包,只需添加一个packages.yml文件到DBT项目的根目录,并添加marketo-source
,salesforce-source
和fivetran-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中创建连接时定义的。
var:marketo_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_nametmp:stg_marketo__activity_email_bounced_tmp:+启用:假stg_marketo__email_template_history_tmp:+启用:假stg_marketo__activity_email_bounced:+启用:假stg_marketo__email_template_history:+启用:假
开发市场分析模型
现在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_id从salesforce_users左加入marketo_users在salesforce_users.email=marketo_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_id=a.account_id左加入opens_clicks_joined作为oc在u.lead_id=oc.lead_id
)选择billing_country作为的国家,数(open_ts)作为打开时,数(click_ts)作为点击,数(click_ts)/数(open_ts)作为click_ratio从加入集团通过国家
运行并测试dbt模型
现在您的模型已经准备好了,您可以运行所使用的所有模型
$ DBT运行
然后使用。运行测试
$ DBT测试
查看dbt文档和沿袭图
一旦你的模型成功运行,你可以生成文档和谱系图使用
$ DBT文档生成
然后查看它们在本地运行
$ DBT文档服务
将dbt模型部署到生产环境
一旦您在本地开发并测试了dbt模型,您就有多个选项可以将其部署到生产环境中,其中之一就是Databricks Workflows(私有预览)中的新的dbt任务类型。
您的dbt项目应该在Git存储库中进行管理和版本控制。您可以在Databricks Workflows作业中创建一个指向Git存储库的dbt任务。
当您在dbt项目中使用包时,第一个命令应该是印度生物技术部deps紧随其后的是印度生物技术部运行第一个任务,然后印度生物技术部测试下一个任务。
然后,您可以使用run now立即运行工作流,还可以为dbt项目设置一个计划,使其按照指定的计划运行。
对于每次运行,您都可以看到每个dbt命令的日志,帮助您调试和修复任何问题。
用Fivetran和dbt为您的营销分析提供动力
如图所示,使用Fivetran和dbt以及Databricks Lakehouse平台,您可以轻松构建一个强大的营销分析解决方案,易于设置,管理bob体育客户端下载和足够灵活,以满足您的任何数据建模需求。
要开始构建自己的解决方案,请访问集成文档Fivetran而且印度生物技术部与数据库和重复使用Marketing_analytics_demo项目示例快速开始。
Databricks Workflows中的dbt任务类型处于私有预览状态。要尝试dbt任务类型,请联系您的Databricks帐户主管。