Adobe Experience Platform 允许您在 Data Science Workspace 集成 Query Service into JupyterLab 作为标准功能。
本教程演示了用于探索、转换和分析常见用例的SQL查询示例 Adobe Analytics 数据。
在启动本教程之前,您必须满足以下先决条件:
访问 Adobe Experience Platform. 如果您在 Experience Platform在继续之前,请咨询您的系统管理员
安 Adobe Analytics 数据集
对本教程中使用的以下关键概念有了有效的了解:
在 Experience Platform,导航到 笔记本 从左侧导航列。 请稍等片刻,等待JupyterLab加载。
如果未自动显示新的“启动器”选项卡,请单击 文件 然后选择 新建启动器.
在启动器选项卡中,单击 空白 图标以打开空笔记本。
Python 3目前是笔记本中唯一支持查询服务的环境。
在左选边栏中,单击 数据 图标,然后双击 数据集 列出所有数据集的目录。
查找 Adobe Analytics 要浏览的数据集并右键单击该列表,请单击 在笔记本中查询数据 在空的笔记本中生成SQL查询。
单击包含函数的第一个生成的单元格 qs_connect()
,然后单击“播放”按钮以执行该操作。 此函数可在笔记本实例与 Query Service.
向下复制 Adobe Analytics 数据集名称(来自第二个生成的SQL查询),它将是 FROM
.
通过单击 + 按钮。
在新单元格中复制、粘贴并执行以下import语句。 这些语句将用于显示您的数据:
import plotly.plotly as py
import plotly.graph_objs as go
from plotly.offline import iplot
接下来,将以下变量复制并粘贴到新单元格中。 根据需要修改其值,然后执行它们。
target_table = "your Adobe Analytics dataset name"
target_year = "2019"
target_month = "04"
target_day = "01"
target_table
:您的 Adobe Analytics 数据集。target_year
:目标数据的来源特定年份。target_month
:目标所在的特定月份。target_day
:目标数据的来源特定日期。您可以随时更改这些值。 执行此操作时,请务必为要应用的更改执行变量单元格。
在单个笔记本单元格中输入以下SQL查询。 选择查询的单元格,然后选择 play 按钮。 成功的查询结果或错误日志显示在已执行的单元格下方。
当笔记本处于长时间不活动状态时,笔记本和 Query Service 可能会中断。 在这种情况下,请重新启动 JupyterLab 选择 重新启动 按钮 位于电源按钮旁的右上角。
笔记本内核将重置,但单元格将保留,重新运行所有单元格以继续离开的位置。
以下查询返回指定日期的每小时访客计数:
%%read_sql hourly_visitor -c QS_CONNECTION
SELECT Substring(timestamp, 1, 10) AS Day,
Substring(timestamp, 12, 2) AS Hour,
Count(DISTINCT concat(enduserids._experience.aaid.id,
_experience.analytics.session.num)) AS Visit_Count
FROM {target_table}
WHERE TIMESTAMP = to_timestamp('{target_year}-{target_month}-{target_day}')
GROUP BY Day, Hour
ORDER BY Hour;
在上述查询中, WHERE
子句设置为的值 target_year
. 通过将变量包含在大括号({}
)。
查询的第一行包含可选变量 hourly_visitor
. 查询结果将作为Pantics数据帧存储在此变量中。 将结果存储在数据帧中后,您可以稍后使用所需的 Python 包。 执行以下操作 Python 代码以生成条形图:
trace = go.Bar(
x = hourly_visitor['Hour'],
y = hourly_visitor['Visit_Count'],
name = "Visitor Count"
)
layout = go.Layout(
title = 'Visit Count by Hour of Day',
width = 1200,
height = 600,
xaxis = dict(title = 'Hour of Day'),
yaxis = dict(title = 'Count')
)
fig = go.Figure(data = [trace], layout = layout)
iplot(fig)
以下查询返回指定日期的每小时操作计数:
%%read_sql hourly_actions -d -c QS_CONNECTION
SELECT Substring(timestamp, 1, 10) AS Day,
Substring(timestamp, 12, 2) AS Hour,
Count(concat(enduserids._experience.aaid.id,
_experience.analytics.session.num,
_experience.analytics.session.depth)) AS Count
FROM {target_table}
WHERE TIMESTAMP = to_timestamp('{target_year}-{target_month}-{target_day}')
GROUP BY Day, Hour
ORDER BY Hour;
执行上述查询将将结果存储在 hourly_actions
数据帧。 在新单元格中执行以下函数以预览结果:
hourly_actions.head()
可以修改上述查询,以使用 其中 子句:
%%read_sql hourly_actions_date_range -d -c QS_CONNECTION
SELECT Substring(timestamp, 1, 10) AS Day,
Substring(timestamp, 12, 2) AS Hour,
Count(concat(enduserids._experience.aaid.id,
_experience.analytics.session.num,
_experience.analytics.session.depth)) AS Count
FROM {target_table}
WHERE timestamp >= TO_TIMESTAMP('2019-06-01 00', 'YYYY-MM-DD HH')
AND timestamp <= TO_TIMESTAMP('2019-06-02 23', 'YYYY-MM-DD HH')
GROUP BY Day, Hour
ORDER BY Hour;
执行修改的查询将结果存储在 hourly_actions_date_range
数据帧。 在新单元格中执行以下函数以预览结果:
hourly_actions_date_rage.head()
以下查询返回指定日期内每个访客会话的事件数:
%%read_sql events_per_session -c QS_CONNECTION
SELECT concat(enduserids._experience.aaid.id,
'-#',
_experience.analytics.session.num) AS aaid_sess_key,
Count(timestamp) AS Count
FROM {target_table}
WHERE TIMESTAMP = to_timestamp('{target_year}-{target_month}-{target_day}')
GROUP BY aaid_sess_key
ORDER BY Count DESC;
执行以下操作 Python 用于为每次访问会话的事件数生成直方图的代码:
data = [go.Histogram(x = events_per_session['Count'])]
layout = go.Layout(
title = 'Histogram of Number of Events per Visit Session',
xaxis = dict(title = 'Number of Events'),
yaxis = dict(title = 'Count')
)
fig = go.Figure(data = data, layout = layout)
iplot(fig)
以下查询返回指定日期内最受欢迎的十个页面:
%%read_sql popular_pages -c QS_CONNECTION
SELECT web.webpagedetails.name AS Page_Name,
Sum(web.webpagedetails.pageviews.value) AS Page_Views
FROM {target_table}
WHERE TIMESTAMP = to_timestamp('{target_year}-{target_month}-{target_day}')
GROUP BY web.webpagedetails.name
ORDER BY page_views DESC
LIMIT 10;
以下查询返回指定日期内十个最活跃的用户:
%%read_sql active_users -c QS_CONNECTION
SELECT enduserids._experience.aaid.id AS aaid,
Count(timestamp) AS Count
FROM {target_table}
WHERE TIMESTAMP = to_timestamp('{target_year}-{target_month}-{target_day}')
GROUP BY aaid
ORDER BY Count DESC
LIMIT 10;
以下查询返回在指定日期生成大多数用户活动的十个城市:
%%read_sql active_cities -c QS_CONNECTION
SELECT concat(placeContext.geo.stateProvince, ' - ', placeContext.geo.city) AS state_city,
Count(timestamp) AS Count
FROM {target_table}
WHERE TIMESTAMP = to_timestamp('{target_year}-{target_month}-{target_day}')
GROUP BY state_city
ORDER BY Count DESC
LIMIT 10;
本教程演示了利用的一些示例用例 Query Service in Jupyter 笔记本。 关注 使用Jupyter Notebooks分析数据 教程,了解如何使用数据访问SDK执行类似操作。