Adobe Experience Platform permite usar a Linguagem de consulta estruturada (SQL) no Data Science Workspace ao integrar Query Service em JupyterLab como um recurso padrão.
Este tutorial demonstra exemplos de consultas SQL para casos de uso comuns para explorar, transformar e analisar Adobe Analytics dados.
Antes de iniciar este tutorial, você deve ter os seguintes pré-requisitos:
Acesso a Adobe Experience Platform. Se você não tiver acesso a uma organização no Experience Platform, entre em contato com o administrador do sistema antes de continuar
Um Adobe Analytics conjunto de dados
Uma compreensão funcional dos seguintes conceitos principais usados neste tutorial:
Entrada Experience Platform, navegue até Notebooks na coluna de navegação à esquerda. Aguarde um momento para o JupyterLab carregar.
Se uma nova guia Iniciador não for exibida automaticamente, abra uma nova guia Iniciador clicando em Arquivo e selecione Novo inicializador.
Na guia Iniciador, clique na guia Em branco em um ambiente Python 3 para abrir um bloco de anotações vazio.
No momento, o Python 3 é o único ambiente compatível com o Serviço de consulta em notebooks.
No painel de seleção esquerdo, clique no link Dados e clique duas vezes no ícone Conjuntos de dados diretório para listar todos os conjuntos de dados.
Encontrar um Adobe Analytics para explorar e clicar com o botão direito do mouse na lista, clique em Consultar Dados no Notebook para gerar consultas SQL no bloco de notas vazio.
Clique na primeira célula gerada que contém a função qs_connect()
e execute-o clicando no botão play. Essa função cria uma conexão entre a instância do bloco de anotações e o Query Service.
Copie para baixo o Adobe Analytics nome do conjunto de dados da segunda consulta SQL gerada, será o valor depois de FROM
.
Insira uma nova célula do bloco de anotações clicando no + botão.
Copie, cole e execute as seguintes instruções de importação em uma nova célula. Estas instruções serão usadas para visualizar seus dados:
import plotly.plotly as py
import plotly.graph_objs as go
from plotly.offline import iplot
Em seguida, copie e cole as seguintes variáveis em uma nova célula. Modifique os valores conforme necessário e execute-os.
target_table = "your Adobe Analytics dataset name"
target_year = "2019"
target_month = "04"
target_day = "01"
target_table
: Nome do seu Adobe Analytics conjunto de dados.target_year
: ano específico de onde os dados do target são.target_month
: mês específico em que o target é.target_day
: dia específico em que os dados do público-alvo são.É possível alterar esses valores a qualquer momento. Ao fazer isso, certifique-se de executar a célula das variáveis para que as alterações sejam aplicadas.
Insira as seguintes consultas SQL em células individuais do bloco de anotações. Execute uma query selecionando em sua célula, seguida pela seleção da variável play botão. Resultados de consulta bem-sucedidos ou logs de erro são exibidos abaixo da célula executada.
Quando um notebook fica inativo por um longo período de tempo, a conexão entre o notebook e Query Service pode quebrar. Nesses casos, reinicie o JupyterLab selecionando o Restart botão localizado no canto superior direito próximo ao botão liga/desliga.
O kernel do notebook é redefinido, mas as células permanecerão, execute novamente todas as células para continuar de onde você parou.
A consulta a seguir retorna a contagem horária de visitantes de uma data especificada:
%%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;
Na consulta acima, o carimbo de data e hora no WHERE
está definida como o valor de target_year
. Incluir variáveis em consultas SQL, contendo-as em chaves ({}
).
A primeira linha da query contém a variável opcional hourly_visitor
. Os resultados da consulta serão armazenados nessa variável como um quadro de dados Pandas. O armazenamento de resultados em um quadro de dados permite visualizar os resultados da consulta posteriormente usando um Python pacote. Execute o seguinte Python em uma nova célula para gerar um gráfico de barras:
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)
A consulta a seguir retorna a contagem de ações por hora para uma data especificada:
%%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;
A execução da consulta acima armazenará os resultados em hourly_actions
como um quadro de dados. Execute a seguinte função em uma nova célula para visualizar os resultados:
hourly_actions.head()
A consulta acima pode ser modificada para retornar a contagem de ações por hora para um intervalo de datas especificado usando operadores lógicos na variável ONDE cláusula:
%%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;
A execução da consulta modificada armazena os resultados em hourly_actions_date_range
como um quadro de dados. Execute a seguinte função em uma nova célula para visualizar os resultados:
hourly_actions_date_rage.head()
A consulta a seguir retorna o número de eventos por sessão de visitante para uma data especificada:
%%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;
Execute o seguinte Python código para gerar um histograma para o número de eventos por sessão de visita:
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)
A consulta a seguir retorna as dez páginas mais populares para uma data especificada:
%%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;
A consulta a seguir retorna os dez usuários mais ativos para uma data especificada:
%%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;
A consulta a seguir retorna as dez cidades que estão gerando a maioria das atividades do usuário para uma data especificada:
%%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;
Este tutorial demonstrou alguns casos de uso de exemplo para utilizar Query Service in Jupyter notebooks. Siga as Analise seus dados usando o Jupyter Notebooks tutorial para ver como operações semelhantes são executadas usando o SDK do Data Access.