Customer Journey Analytics BI 扩展

NOTE
您必须具有​ Select ​或更高版本程序包才能使用此部分中描述的功能。 如果您不确定您拥有的是哪个 Customer Journey Analytics 包,请联系您的管理员。

通过 Customer Journey Analytics BI extension,SQL 可访问您在 Customer Journey Analytics 中定义的数据视图。您的数据工程师和分析师可能更熟悉 Power BI、Tableau 或其他商业智能和可视化工具(也称为 BI 工具)。他们现在可以基于 Customer Journey Analytics 用户在创建 Analysis Workspace 项目时使用的相同数据视图来创建报告和仪表板。

Adobe Experience Platform Query Service 是 Experience Platform 数据湖中可用数据的 SQL 接口。启用 Customer Journey Analytics BI extension 后,Query Service的功能将得到扩展,以便在Query Service会话中以表或视图的形式查看 Customer Journey Analytics 数据视图。因此,将Query Service用作其 PostgresSQL 接口的商业智能工具可以无缝地从这项扩展的功能中受益。

主要好处是:

  • 无需在 BI 工具中重新创建 Customer Journey Analytics 数据视图的等效表示形式。
    有关数据视图功能的更多信息,请参阅数据视图,从而了解必须重新创建的内容。
  • BI 工具和 Customer Journey Analytics 之间的报告和分析具有更高的一致性。
  • 将 Customer Journey Analytics 数据与 BI 工具中已有的其他数据源结合起来。

先决条件

要使用此功能,您必须具有:

  • 已授予对Experience Platform和Customer Journey Analytics的访问权限。
  • 已授予产品管理员访问Customer Journey Analytics的权限,以便您可以查看、编辑、更新或删除连接和数据视图。
  • 已授予您要访问的数据视图的访问权限。
  • 已授予对CJA BI扩展的访问权限。
  • 使用过期或不过期凭据将 BI 工具连接到 Customer Journey Analytics BI extension。凭据指南提供了有关如何设置过期凭据或不过期凭据的更多信息。

请参阅客户历程访问控制以了解详细信息,特别是产品管理员附加权限和Admin Console中的Customer Journey Analytics权限

使用情况

要使用 Customer Journey Analytics BI extension 功能,您可以直接使用 SQL,也可以使用特定 BI 工具中提供的拖放体验。

SQL

您可以通过查询编辑器或标准 PostgresSQL 命令行界面 (CLI) 客户端直接在 SQL 语句中使用此功能。

查询编辑器

在 Adobe Experience Platform 中:

  1. 在左边栏中的​ ​数据管理​ ​中,选择​ ​查询​

  2. 选择 创建查询 ​创建查询​

  3. 选择cja​数据库​

  4. 要执行查询,请键入 SQL 语句并选择 播放 按钮(或按 [SHIFT] + [ENTER])。

PostgresSQL CLI
  1. 在 Adobe Experience Platform 中,找到并复制您的 PostgresSQL 凭据:

    1. 从左边栏中(​数据管理​ ​下),选择​ ​查询​

    2. 从顶部栏中选择​ ​凭据​

    3. 选择cja​数据库​

    4. 若要复制命令字符串,请使用 ​ PSQL 命令​ ​部分中的 复制

  2. 打开命令或终端窗口。

  3. 要登录并开始执行查询,请将命令字符串粘贴到终端中。

有关详细信息,请参阅查询编辑器UI指南

BI 工具

目前,Customer Journey Analytics BI extension 仅支持并针对 Power BI 和 Tableau 进行了测试。其他使用 PSQL 接口的 BI 工具也能工作,但尚未获得正式支持。

Power BI
  1. 在 Adobe Experience Platform 中,查找 PostgresSQL 凭据的详细信息:

    1. 从左边栏中(​数据管理​ ​下),选择​ ​查询​

    2. 从顶部栏中选择​ ​凭据​

    3. 选择cja​数据库​

    4. 如果需要,使用 复制 在 Power BI 中复制每个 Postgres 凭据参数(主机、端口、数据库、用户名 等)。

  2. 在 Power BI 中:

    1. 在主窗口中,从顶部工具栏中选择​ ​获取数据​

    2. 选择左边栏中的​ 更多…

    3. 在​ 获取数据 ​屏幕中,搜索 PostgresSQL,并从列表中选择 ​ PostgresSQL 数据库​

    4. ​ PostgressSQL 数据库​ ​对话框中:

      1. 将Experience Platform查询凭据中的​**** Host ​参数粘贴到​ ​服务器​****​文本字段中。

      2. 将Experience Platform查询凭据中的​ ​数据库​ ​参数粘贴到​ ​数据库​ ​文本字段中。

        ?FLATTEN 添加到​ ​数据库​ ​参数,例如,使其显示内容为 prod:cja?FLATTEN。有关更多信息,请参阅扁平化处理嵌套数据结构以用于第三方 BI 工具

      3. 当提示输入​ 数据连接 ​模式时,请选择 DirectQuery

      4. 系统会提示您输入​ 用户名 ​和​ 密码。使用 Experience Platform 查询凭据中的等效参数。

    5. 成功登录后,Customer Journey Analytics数据视图表将出现在Power BI ​导航器​ ​中。

    6. 选择要使用的数据视图表,然后选择​ ​加载​

    与一个或多个选定表关联的所有维度和量度都显示在右窗格中,可供您在可视化图表中使用。

    有关更多信息,请参阅将 Power BI 连接到 Query Service

Tableau
  1. 在 Adobe Experience Platform 中,查找 PostgresSQL 凭据的详细信息:

    1. 从左边栏中(​数据管理​ ​下),选择​ ​查询​

    2. 从顶部栏中选择​ ​凭据​

    3. 选择 cja​数据库​

    4. 如果需要,使用 复制 在 Tableau 中复制每个 Postgres 凭据参数(主机、端口、数据库、用户名 等)。

  2. 在 Tableau 中:

    1. 从左边栏中的​ ​至服务器​ ​中选择​ ​更多​

    2. 从列表中选择 ​ PostgresSQL ​

    3. 在 PostgresSQL 对话框中:

      1. 将Experience Platform查询凭据中的​ ​主机​ ​参数粘贴到​ ​服务器​ ​文本字段中。

      2. 将Experience Platform查询凭据中的​ ​端口​ ​参数粘贴到​ ​端口​ ​文本字段中。

      3. 将Experience Platform查询凭据中的​ ​数据库​ ​参数粘贴到​ ​数据库​ ​文本字段中。

        %3FFLATTEN 添加到​ ​数据库​ ​参数,例如,使其显示内容为 prod:cja%3FFLATTEN。有关更多信息,请参阅扁平化处理嵌套数据结构以用于第三方 BI 工具

      4. 从​ ​身份验证​ ​列表中选择​ ​用户名和密码​

      5. 将 Experience Platform 查询凭据中的​ ​用户名​ ​参数粘贴到​ ​用户名​ ​文本字段中。

      6. 将Experience Platform查询凭据中的​ ​密码​ ​参数粘贴到​ ​密码​ ​文本字段中。

      7. 选择​ ​登录​

    4. Customer Journey Analytics 数据视图显示为​ ​表​ ​列表中的表。

    5. 将要使用的表拖动到画布上。

    您现在可以使用数据视图表中的数据来构建报告和可视化图表。

    有关更多信息,请参阅将 Tableau 连接到 Query Service

请参阅将客户端连接到 Query Service,大致了解各种可用工具及其详细信息。

功能

默认情况下,您的数据视图具有从其友好名称生成的表安全名称。例如,名为我的Web数据视图的数据视图具有视图名称my_web_data_view。 您可以为数据视图定义要在BI工具中使用的首选名称。 有关详细信息,请参阅数据视图设置

如果要使用数据视图 ID 作为表名称,可以在连接时将可选的 CJA_USE_IDS 设置添加到数据库名称。例如,prod:cja?CJA_USE_IDS 显示具有 dv_ABC123 等名称的数据视图。

数据管理

Customer Journey Analytics 中与数据管理相关的设置继承自 Adobe Experience Platform。Customer Journey Analytics 和 Adobe Experience Platform 数据管理之间的集成允许标记敏感的 Customer Journey Analytics 数据和实施隐私政策。

在 Experience Platform 使用的数据集上创建的隐私标签和政策可以在 Customer Journey Analytics 数据视图工作流中显示。因此,在未遵循定义的隐私标签和政策时,使用 Customer Journey Analytics BI extension 查询的数据会显示相应的警告或错误。

列出数据视图

在标准 PostgreSQL CLI 中,可以使用 \dv 列出视图

prod:all=> \dv
                       List of relations
 Schema |                    Name                    | Type |  Owner
--------+--------------------------------------------+------+----------
 public | my_web_data_view                           | view | postgres
 public | my_mobile_data_view                        | view | postgres

嵌套与扁平化处理

默认情况下,数据视图架构使用嵌套结构,就像原始 XDM 架构一样。该集成还支持 FLATTEN 选项。您可以使用此选项实施要扁平化处理的数据视图(以及会话中的任何其他表)的架构。通过扁平化处理,可以更轻松地在不支持结构化架构的 BI 工具中使用。有关更多信息,请参阅在 Query Service 中使用嵌套数据结构

支持的 SQL

有关支持的 SQL 类型的完整参考,请参阅 Query Service SQL 参考

有关可以使用的SQL的示例,请参见下表。

示例
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 7-row-2 8-row-2 9-row-2 10-row-2 layout-auto
模式 示例
架构发现
SELECT * FROM dv1 WHERE 1=0
排名或细分
SELECT dim1, SUM(metric1) AS m1
FROM dv1
WHERE `timestamp` BETWEEN '2022-01-01' AND '2022-01-02'
GROUP BY dim1
SELECT dim1, SUM(metric1) AS m1
FROM dv1
WHERE `timestamp` BETWEEN '2022-01-01' AND '2022-01-02' AND
 filterId = '12345'
GROUP BY dim1
SELECT dim1, SUM(metric1) AS m1
FROM dv1
WHERE `timestamp` BETWEEN '2022-01-01' AND '2022-01-02' AND
 AND (dim2 = 'A' OR dim3 IN ('X', 'Y', 'Z'))
GROUP BY dim1
HAVING 字句
SELECT dim1, SUM(metric1) AS m1
FROM dv1
WHERE `timestamp` BETWEEN '2022-01-01' AND '2022-01-02'
GROUP BY dim1
HAVING m1 > 100
顶部区别
维度值
SELECT DISTINCT dim1 FROM dv1
SELECT dim1 AS dv1
FROM dv1
WHERE `timestamp` BETWEEN '2022-01-01' AND '2022-01-02'
GROUP BY dim1
SELECT dim1 AS dv1
FROM dv1
WHERE `timestamp` >= '2022-01-01' AND `timestamp` < '2022-01-02'
GROUP BY dim1
ORDER BY SUM(metric1)
LIMIT 15
量度总计
SELECT SUM(metric1) AS m1
FROM dv1
WHERE `timestamp` BETWEEN '2022-01-01' AND '2022-01-02'
多维度
细分
和顶部区别
SELECT dim1, dim2, SUM(metric1) AS m1
FROM dv1
WHERE `timestamp` BETWEEN '2022-01-01' AND '2022-01-02'
GROUP BY dim1, dim2
SELECT dim1, dim2, SUM(metric1) AS m1
FROM dv1
WHERE `timestamp` BETWEEN '2022-01-01' AND '2022-01-02'
GROUP BY 1, 2
ORDER BY 1, 2
SELECT DISTINCT dim1, dim2
FROM dv1
子选择:
筛选其他
结果
SELECT dim1, m1
FROM (
 SELECT dim1, SUM(metric1) AS m1
 FROM dv1
 WHERE `timestamp` BETWEEN '2022-01-01' AND '2022-01-02'
 GROUP BY dim1
)
WHERE dim1 in ('A', 'B')
子选择:跨数据视图
查询
SELECT key, SUM(m1) AS total
FROM (
 SELECT dim1 AS key, SUM(metric1) AS m1
 FROM dv1
 WHERE `timestamp` BETWEEN '2022-01-01' AND '2022-01-02'
 GROUP BY dim1

 UNION

 SELECT dim2 AS key, SUM(m1) AS m1
 FROM dv2
 WHERE `timestamp` BETWEEN '2022-01-01' AND '2022-01-02'
 GROUP BY dim2
GROUP BY key
ORDER BY total
子选择:
分层来源,
过滤
和聚合

使用子选择进行分层:

SELECT rows.dim1, SUM(rows.m1) AS total
FROM (
 SELECT _.dim1,_.m1
 FROM (
 SELECT * FROM dv1
 WHERE `timestamp` BETWEEN '2022-01-01' AND '2022-01-02'
 ) _
 WHERE _.dim1 in ('A', 'B', 'C')
) rows
GROUP BY 1
ORDER BY total

使用 CTE WITH 的层:

行为(
,_ AS (
) 从data_ares
中选择* 其中&#39;timestamp&#39;介于'2021-01-01'和'2021-02-01'
 )
从_
中选择_.item, _.units FROM _ WHERE _.item IS NOT NULL
)
选择rows.item, SUM(rows.units)作为单位
从rows.item的行('A', 'B', 'C')
按行分组.item
选择
量度位于维度之前
或与维度
混合的情况
SELECT SUM(metric1) AS m1, dim1
FROM dv1
WHERE `timestamp` BETWEEN '2022-01-01' AND '2022-01-02'
GROUP BY 2

维度

您可以选择默认可用或在数据视图中定义的任何维度。可通过维度 ID 选择维度。

量度

可选择的量度为:

  • 默认情况下可用的任何量度;
  • 在数据视图中定义;
  • 与用户有权访问的数据视图兼容的计算量度。

可通过包含在 SUM(metric) 表达式中的量度 ID 选择量度,就像处理其他 SQL 源一样。

您可以使用:

  • SELECT COUNT(*)COUNT(1) 获取发生次数量度。
  • SELECT COUNT(DISTINCT dimension)SELECT APPROX_COUNT_DISTINCT(dimension) 对某个维度的近似不同值计数。有关详细信息,请参阅计算不同的值
  • 内联计算,动态组合量度并/或对它们进行数学运算。

计算不同的值

由于 Customer Journey Analytics 工作方式的基本特性,您可以获得准确的不同计数的唯一维度是 adobe_personid 维度。以下SQL语句SELECT COUNT(DISTINCT adobe_personid)SELECT APPROX_COUNT_DISTINCT(adobe_personid)返回默认人员量度的值,该量度是不同人员的计数。 对于其他维度,返回近似的非重复计数。

条件量度

可以将 IFCASE 子句嵌入 SUMCOUNT 函数中,以添加特定于选定量度的其他过滤。添加这些子句类似于将过滤器应用于 Workspace 报告表中的量度列。

示例:

SUM(IF(dim1 = 'X' AND dim2 = 'A', metric1, 0)) AS m1
SUM(CASE WHEN dim1 = 'X' AND dim2 = 'A' THEN metric1 END) AS m1

内联计算

您可以对SELECT中的量度表达式应用附加的数学公式。 可以使用此数学,而不是在计算量度中定义数学。 下表列出了支持的表达式的类型。

运算符或函数
详细信息
+-*/%
加、减、乘、除和模数/余数
-X+X
更改符号或量度,其中 X 是量度表达式
PI()
π 常量
POSITIVENEGATIVEABSFLOORCEILCEILINGEXPLNLOG10LOG1PSQRTCBRTDEGREESRADIANSSINCOSTANACOSASINATANCOSHSINHTANH
一元数学函数
MOD, POW, POWER, ROUND, LOG
二元数学函数

特殊列

时间戳

timestamp 特殊列用于提供查询的日期范围。可使用 BETWEEN 表达式或 timestamp >>=<<= 检查 AND 对来定义日期范围。
timestamp 是可选的,如果未提供完整范围,则使用默认值:

  • 如果仅提供最小值(timestamp > Xtimestamp >= X),则范围为从 X 到当前日期。
  • 如果仅提供最大值(timestamp < Xtimestamp <= X),则范围为从 X 减去 30 天到 X。
  • 如果未提供任何内容,则范围为从当前日期减去 30 天到当前的日期。

时间戳范围将转换为 RankedRequest 中的日期范围全局过滤器。
时间戳字段也可以在日期/时间函数中用于解析或截断事件时间戳。

日期范围

daterange特殊列的工作方式与timestamp类似;但筛选限制为全天。 daterange 也是可选的,并具有与 timestamp 相同的范围默认值。
daterange 字段也可以在日期/时间函数中用于解析或截断事件日期。

daterangeName 特殊列可用于使用命名的日期范围(例如 Last Quarter)来过滤查询。

NOTE
Power BI不支持少于一天的daterange指标(小时、30分钟、5分钟等)。

筛选条件 ID

filterId 特殊列是可选的,用于将外部定义的过滤器应用于查询。将外部定义的过滤器应用于查询类似于将过滤器拖动到 Workspace 中的面板上。AND可以使用多个筛选器ID。

除了 filterId,您可以使用 filterName 来使用筛选条件的名称而不是 ID。

WHERE 子句

通过三个步骤处理 WHERE 子句:

  1. timestampdaterangedaterangeName 特殊字段中查找日期范围。

  2. 查找要包含在筛选中的任何外部定义的 filterIdfilterName

  3. 将剩余的表达式转变为临时过滤器。

通过解析 WHERE 子句中的 AND 的第一层来进行处理。每个采用 AND 的顶层表达式必须与上述某个表达式匹配。比 AND 的第一层更深入的任何项目(或在 WHERE 子句在顶层使用 OR 时)将处理为临时过滤器。

排序顺序

默认情况下,查询按第一个选定量度以降序顺序对结果进行排序。可以通过指定 ORDER BY ... ASCORDER BY ... DESC 来覆盖默认排序顺序。如果使用的是 ORDER BY,则必须在第一个选定量度上指定 ORDER BY

还可以在量度前面使用 -(减号)来颠倒顺序。下面的两个语句都将产生相同的顺序:

ORDER BY metric1 ASC
ORDER BY -metric1 DESC

一般函数支持

函数
示例
详细信息
转换
CAST(`timestamp` AS STRING)
`timestamp`::string
虽然当前不支持类型转换,但不会引发错误。CAST 函数将被忽略。
时间戳
WHERE `timestamp` >= TIMESTAMP('2022-01-01 00:00:00') AND `timestamp` < TIMESTAMP('2022-01-02 00:00:00')
将时间字符串解析为时间戳以在 WHERE 子句中使用。
到时间戳
WHERE `timestamp` >= TO_TIMESTAMP('01/01/2022', 'MM/dd/yyyy') AND `timestamp` < TO_TIMESTAMP('01/02/2022', 'MM/dd/yyyy')
将时间字符串解析为时间戳以在 WHERE 子句中使用,(可选)并提供该时间字符串的格式。
日期
WHERE `timestamp` >= DATE('2022-01-01') AND `timestamp` < DATE('2022-01-02')
将日期字符串解析为时间戳以在 WHERE 子句中使用。
到日期
WHERE `timestamp` >= TO_DATE('01/01/2022', 'MM/dd/yyyy') AND `timestamp` < TO_DATE('01/02/2022', 'MM/dd/yyyy')
将日期字符串解析为时间戳以在 WHERE 子句中使用,(可选)并提供该日期字符串的格式。

维度函数支持

这些函数可用于 SELECTWHERE 子句或条件量度中的维度。

String 函数

函数
示例
详细信息
Lower
SELECT LOWER(name) AS lower_name
在传入字段上生成动态维度标识。

Date-Time 函数

函数
示例
详细信息
SELECT YEAR(`timestamp`)
在传入字段上生成动态维度标识。
SELECT MONTH(`timestamp`)
在传入字段上生成动态维度标识。
SELECT DAY(`timestamp`)
在传入字段上生成动态维度标识。
每周时间
SELECT DAYOFWEEK(`timestamp`)
在传入字段上生成动态维度标识。使用项目 ID 而不是值,因为您需要的是数字而不是友好名称。
每年的某一日
SELECT DAYOFYEAR(`timestamp`)
在传入字段上生成动态维度标识。
SELECT WEEK(`timestamp`)
在传入字段上生成动态维度标识。
季度
SELECT QUARTER(`timestamp`)
在传入字段上生成动态维度标识。
小时
SELECT HOUR(`timestamp`)
在传入字段上生成动态维度标识。使用项目 ID 而不是值,因为您需要的是数字而不是友好名称。
分钟
SELECT MINUTE(`timestamp`)
在传入字段上生成动态维度标识。
提取
SELECT EXTRACT(MONTH FROM `timestamp`)
在传入字段上生成动态维度标识。对此函数的某些部分使用项目 ID 而不是值,因为您需要的是数字而不是友好名称。
支持的部分为:
- 关键词:YEARMONTHDAYOFMONTHDAYOFWEEKDAYOFYEARWEEKQUARTERHOURMINUTE
- 字符串:'YEAR''Y''MONTH''M''DAYOFMONTH''DAY''D''DAYOFWEEK''DOW''DAYOFYEAR''DOY''WEEK''WOY'W''QUARTER''QOY''Q''HOUR''MINUTE'
日期(部分)
SELECT DATE_PART('month', `timestamp`)
在传入字段上生成动态维度标识。对此函数的某些部分使用项目 ID 而不是值,因为您需要的是数字而不是友好名称。
支持的字符串部分为:'YEAR''Y''MONTH''M''DAYOFMONTH''DAY''D''DAYOFWEEK''DOW''DAYOFYEAR''DOY''WEEK''WOY'W''QUARTER''QOY''Q''HOUR''MINUTE'
日期(截断)
SELECT DATE_TRUNC('quarter', `timestamp`)
在传入字段上生成动态维度标识。
支持的字符串粒度为:'YEAR''Y''MONTH''M''DAYOFMONTH''DAY''D''DAYOFWEEK''DOW''DAYOFYEAR''DOY''WEEK''WOY'W''QUARTER''QOY''Q''HOUR''MINUTE'
recommendation-more-help
080e5213-7aa2-40d6-9dba-18945e892f79