Customer Journey Analytics BI 扩展
通过 Customer Journey Analytics BI extension,SQL 可访问您在 Customer Journey Analytics 中定义的数据视图。您的数据工程师和分析人员可能更熟悉Power BI、Tableau Desktop或其他业务智能和可视化工具(进一步称为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 工具中已有的其他数据源结合起来。
先决条件
要使用此功能,您可以使用过期或不过期的凭据将BI工具连接到Customer Journey Analytics BI extension。 凭据指南提供了有关设置过期凭据或不过期凭据的详细信息。
以下是设置CJA权限的其他步骤
过期凭据
要使用过期凭据,您可以:
- 授予对Experience Platform和Customer Journey Analytics的访问权限。
- 授予产品管理员访问Customer Journey Analytics的权限,以便您可以查看、编辑、更新或删除连接和数据视图。
或者,您可以:
- 授予对要访问的数据视图的访问权限。
- 授予对Customer Journey AnalyticsBI扩展的访问权限。
未过期的凭据
要使用不会过期的凭据,请执行以下操作:
- 在Experience Platform中创建不会过期的凭据。
- 按照过期凭据中所述的步骤授予访问未过期凭据的权限。
请参阅客户历程访问控制以了解详细信息,特别是产品管理员附加权限和Admin Console中的Customer Journey Analytics权限。
使用情况
要使用 Customer Journey Analytics BI extension 功能,您可以直接使用 SQL,也可以使用特定 BI 工具中提供的拖放体验。
SQL
您可以通过查询编辑器或标准 PostgresSQL 命令行界面 (CLI) 客户端直接在 SQL 语句中使用此功能。
在 Adobe Experience Platform 中:
-
在左边栏中的 数据管理 中,选择 查询。
-
选择 创建查询。
-
选择
cja
数据库。 -
要执行查询,请键入 SQL 语句并选择 按钮(或按
[SHIFT]
+[ENTER]
)。
-
在 Adobe Experience Platform 中,找到并复制您的 PostgresSQL 凭据:
-
从左边栏中(数据管理 下),选择 查询。
-
从顶部栏中选择 凭据。
-
选择
cja
数据库。 -
若要复制命令字符串,请使用 PSQL 命令 部分中的 。
-
-
打开命令或终端窗口。
-
要登录并开始执行查询,请将命令字符串粘贴到终端中。
有关详细信息,请参阅查询编辑器UI指南。
BI 工具
目前,仅支持Customer Journey Analytics BI extension并针对Power BI和Tableau桌面进行测试。 其他使用 PSQL 接口的 BI 工具也能工作,但尚未获得正式支持。
-
在 Adobe Experience Platform 中,查找 PostgresSQL 凭据的详细信息:
-
从左边栏中(数据管理 下),选择 查询。
-
从顶部栏中选择 凭据。
-
选择
cja
数据库。 -
如果需要,使用 在 Power BI 中复制每个 Postgres 凭据参数(主机、端口、数据库、用户名 等)。
-
-
在 Power BI 中:
-
在主窗口中,从顶部工具栏中选择 获取数据。
-
选择左边栏中的 更多…。
-
在 获取数据 屏幕中,搜索
PostgresSQL
,并从列表中选择 PostgresSQL 数据库。 -
在 PostgressSQL 数据库 对话框中:
-
将Experience Platform查询凭据中的**** Host 参数粘贴到 服务器****文本字段中。
-
将Experience Platform查询凭据中的 数据库 参数粘贴到 数据库 文本字段中。
将
?FLATTEN
添加到 数据库 参数,例如,使其显示内容为prod:cja?FLATTEN
。有关更多信息,请参阅扁平化处理嵌套数据结构以用于第三方 BI 工具。 -
当提示输入 数据连接 模式时,请选择 DirectQuery。
-
系统会提示您输入 用户名 和 密码。使用 Experience Platform 查询凭据中的等效参数。
-
-
成功登录后,Customer Journey Analytics数据视图表将出现在Power BI 导航器 中。
-
选择要使用的数据视图表,然后选择 加载。
与一个或多个选定表关联的所有维度和量度都显示在右窗格中,可供您在可视化图表中使用。
有关更多信息,请参阅将 Power BI 连接到 Query Service。
-
-
在 Adobe Experience Platform 中,查找 PostgresSQL 凭据的详细信息:
-
从左边栏中(数据管理 下),选择 查询。
-
从顶部栏中选择 凭据。
-
选择
cja
数据库。 -
在Tableau Desktop中需要时,使用 复制每个Postgres凭据参数(主机、端口、数据库、用户名等)。
-
-
在Tableau桌面中:
-
从左边栏中的 至服务器 中选择 更多。
-
从列表中选择 PostgresSQL 。
-
在 PostgresSQL 对话框中:
-
将Experience Platform查询凭据中的 主机 参数粘贴到 服务器 文本字段中。
-
将Experience Platform查询凭据中的 端口 参数粘贴到 端口 文本字段中。
-
将Experience Platform查询凭据中的 数据库 参数粘贴到 数据库 文本字段中。
将
%3FFLATTEN
添加到 数据库 参数,例如,使其显示内容为prod:cja%3FFLATTEN
。有关更多信息,请参阅扁平化处理嵌套数据结构以用于第三方 BI 工具。 -
从 身份验证 列表中选择 用户名和密码。
-
将 Experience Platform 查询凭据中的 用户名 参数粘贴到 用户名 文本字段中。
-
将Experience Platform查询凭据中的 密码 参数粘贴到 密码 文本字段中。
-
选择 登录。
-
-
Customer Journey Analytics 数据视图显示为 表 列表中的表。
-
将要使用的表拖动到画布上。
您现在可以使用数据视图表中的数据来构建报告和可视化图表。
有关更多信息,请参阅将 Tableau 连接到 Query Service。
-
请参阅将客户端连接到 Query Service,大致了解各种可用工具及其详细信息。
请参阅用例,了解如何使用Customer Journey AnalyticsBI扩展完成多个用例
功能
默认情况下,您的数据视图具有从其友好名称生成的表安全名称。例如,名为我的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 中使用嵌套数据结构。
默认值和限制
使用BI扩展时,以下附加默认值和限制也适用:
-
BI扩展要求对查询结果进行行限制。 默认值为50,但您可以使用
LIMIT n
在SQL中覆盖此值,其中n
为1 - 50000。 -
BI扩展需要一个日期范围来限制用于计算的行。 默认值为最近30天,但您可以在SQL
WHERE
子句中使用特殊的timestamp
或daterange
列覆盖此值。 -
BI扩展需要聚合查询。 无法使用诸如
SELECT * FROM ...
之类的SQL获取原始基础行。 从较高层面来看,您的聚合查询应使用:-
使用
SUM
和/或COUNT
选择总计。
例如,SELECT SUM(metric1), COUNT(*) FROM ...
-
选择按维度划分的量度。
例如,SELECT dimension1, SUM(metric1), COUNT(*) FROM ... GROUP BY dimension1
-
选择不同的量度值。
例如,SELECT DISTINCT dimension1 FROM ...
查看更多详细信息支持的SQL。
-
支持的 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 | |
---|---|
模式 | 示例 |
架构发现 |
|
排名或细分 |
|
HAVING 字句 |
|
顶部区别 维度值 |
|
量度总计 |
|
多维度 细分 和顶部区别 |
|
子选择: 筛选其他 结果 |
|
子选择:跨数据视图 查询 |
|
子选择: 分层来源, 过滤 和聚合 |
使用子选择进行分层:
使用 CTE WITH 的层:
|
选择 量度位于维度之前 或与维度 混合的情况 |
|
维度
您可以选择默认可用或在数据视图中定义的任何维度。可通过维度 ID 选择维度。
量度
可选择的量度为:
- 默认情况下可用的任何量度;
- 在数据视图中定义;
- 与用户有权访问的数据视图兼容的计算量度。
可通过包含在 SUM(metric)
表达式中的量度 ID 选择量度,就像处理其他 SQL 源一样。
您可以使用:
计算不同的值
由于 Customer Journey Analytics 工作方式的基本特性,您可以获得准确的不同计数的唯一维度是 adobe_personid
维度。以下SQL语句SELECT COUNT(DISTINCT adobe_personid)
或SELECT APPROX_COUNT_DISTINCT(adobe_personid)
返回默认人员量度的值,该量度是不同人员的计数。 对于其他维度,返回近似的非重复计数。
条件量度
可以将 IF
或 CASE
子句嵌入 SUM
或 COUNT
函数中,以添加特定于选定量度的其他过滤。添加这些子句类似于将过滤器应用于 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
PI()
POSITIVE
、NEGATIVE
、ABS
、FLOOR
、CEIL
、CEILING
、EXP
、LN
、LOG10
、LOG1P
、SQRT
、CBRT
、DEGREES
、RADIANS
、SIN
、COS
、TAN
、ACOS
、ASIN
、ATAN
、COSH
、SINH
和 TANH
MOD
, POW
, POWER
, ROUND
, LOG
特殊列
时间戳
timestamp
特殊列用于提供查询的日期范围。可使用 BETWEEN
表达式或 timestamp
>
、>=
、<
、<=
检查 AND
对来定义日期范围。timestamp
是可选的,如果未提供完整范围,则使用默认值:
- 如果仅提供最小值(
timestamp > X
或timestamp >= X
),则范围为从 X 到当前日期。 - 如果仅提供最大值(
timestamp < X
或timestamp <= X
),则范围为从 X 减去 30 天到 X。 - 如果未提供任何内容,则范围为从当前日期减去 30 天到当前的日期。
时间戳范围将转换为 RankedRequest 中的日期范围全局过滤器。
时间戳字段也可以在日期/时间函数中用于解析或截断事件时间戳。
日期范围
daterange
特殊列的工作方式与timestamp
类似;但筛选限制为全天。 daterange
也是可选的,并具有与 timestamp
相同的范围默认值。daterange
字段也可以在日期/时间函数中用于解析或截断事件日期。
daterangeName
特殊列可用于使用命名的日期范围(例如 Last Quarter
)来过滤查询。
daterange
指标(小时、30分钟、5分钟等)。筛选条件 ID
filterId
特殊列是可选的,用于将外部定义的过滤器应用于查询。将外部定义的过滤器应用于查询类似于将过滤器拖动到 Workspace 中的面板上。AND
可以使用多个筛选器ID。
除了 filterId
,您可以使用 filterName
来使用筛选条件的名称而不是 ID。
WHERE 子句
通过三个步骤处理 WHERE
子句:
-
从
timestamp
、daterange
或daterangeName
特殊字段中查找日期范围。 -
查找要包含在筛选中的任何外部定义的
filterId
或filterName
。 -
将剩余的表达式转变为临时过滤器。
通过解析 WHERE
子句中的 AND
的第一层来进行处理。每个采用 AND
的顶层表达式必须与上述某个表达式匹配。比 AND
的第一层更深入的任何项目(或在 WHERE
子句在顶层使用 OR
时)将处理为临时过滤器。
排序顺序
默认情况下,查询按第一个选定量度以降序顺序对结果进行排序。可以通过指定 ORDER BY ... ASC
或 ORDER BY ... DESC
来覆盖默认排序顺序。如果使用的是 ORDER BY
,则必须在第一个选定量度上指定 ORDER BY
。
还可以在量度前面使用 -
(减号)来颠倒顺序。下面的两个语句都将产生相同的顺序:
ORDER BY metric1 ASC
ORDER BY -metric1 DESC
一般函数支持
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
子句中使用,(可选)并提供该日期字符串的格式。维度函数支持
这些函数可用于 SELECT
、WHERE
子句或条件量度中的维度。
String 函数
Date-Time 函数
SELECT EXTRACT(MONTH FROM `timestamp`)
支持的部分为:
- 关键词:
YEAR
、MONTH
、DAYOFMONTH
、DAYOFWEEK
、DAYOFYEAR
、WEEK
、QUARTER
、HOUR
、MINUTE
。- 字符串:
'YEAR'
、'Y'
、'MONTH'
、'M'
、'DAYOFMONTH'
、'DAY'
、'D'
、'DAYOFWEEK'
、'DOW'
、'DAYOFYEAR'
、'DOY'
、'WEEK'
、'WOY
、'W'
、'QUARTER'
、'QOY'
、'Q'
、'HOUR'
或 'MINUTE'
。SELECT DATE_PART('month', `timestamp`)
支持的字符串部分为:
'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'
。部分支持
某些SQL功能仅部分受BI扩展支持,不会返回您在其他数据库中看到的相同结果。 此特定功能用于各种BI工具生成的SQL中,其中BI扩展没有完全匹配项。 因此,BI扩展侧重于有限实施,该实施涵盖了最低BI工具使用率且不会引发错误。 有关更多详细信息,请参阅下表。
MIN(daterange)
或MAX(daterange)
timestamp
、daterange
或任何daterangeX
(如daterangeday
)上的MIN()
将在2年前返回。timestamp
、daterange
或任何daterangeX
(如daterangeday
)上的MAX()
将返回当前日期/时间。任何其他维度、量度或表达式上的MIN()
或MAX()
将返回0。