Adobe Experience Platform consente di utilizzare SQL (Structured Query Language) in Data Science Workspace integrando Query Service in JupyterLab come funzionalità standard.
Questo tutorial illustra query SQL di esempio per casi d’uso comuni da esplorare, trasformare e analizzare Adobe Analytics dati.
Prima di avviare questa esercitazione, è necessario disporre dei seguenti prerequisiti:
Accesso a Adobe Experience Platform. Se non hai accesso a un’organizzazione in Experience Platform, contattare l'amministratore di sistema prima di procedere
Un Adobe Analytics set di dati
Una buona conoscenza dei seguenti concetti chiave utilizzati in questa esercitazione:
In entrata Experience Platform, passa a Notebook dalla colonna di navigazione a sinistra. Attendere. Caricamento di JupyterLab.
Se non viene visualizzata automaticamente una nuova scheda di avvio, aprirne una nuova facendo clic su File quindi seleziona Nuovo modulo di avvio.
Nella scheda Utilità di avvio, fai clic su Vuoto in un ambiente Python 3 per aprire un notebook vuoto.
Python 3 è attualmente l’unico ambiente supportato per Query Service nei notebook.
Nella barra di selezione a sinistra, fai clic su Dati e fare doppio clic sull'icona Set di dati per elencare tutti i set di dati.
Trova un Adobe Analytics set di dati da esplorare e fai clic con il pulsante destro del mouse sull’elenco, fai clic su Eseguire query sui dati nel blocco appunti per generare query SQL nel blocco appunti vuoto.
Fare clic sulla prima cella generata contenente la funzione qs_connect()
ed eseguirlo facendo clic sul pulsante play. Questa funzione crea una connessione tra l'istanza del notebook e Query Service.
Copia in basso Adobe Analytics nome del set di dati dalla seconda query SQL generata, sarà il valore dopo FROM
.
Inserire una nuova cella del blocco appunti facendo clic sul pulsante + pulsante.
Copiare, incollare ed eseguire le istruzioni di importazione seguenti in una nuova cella. Queste istruzioni verranno utilizzate per visualizzare i dati:
import plotly.plotly as py
import plotly.graph_objs as go
from plotly.offline import iplot
Quindi, copia e incolla le seguenti variabili in una nuova cella. Modifica i valori in base alle esigenze, quindi eseguili.
target_table = "your Adobe Analytics dataset name"
target_year = "2019"
target_month = "04"
target_day = "01"
target_table
: nome del Adobe Analytics set di dati.target_year
: anno specifico da cui provengono i dati target.target_month
: mese specifico di provenienza del target.target_day
: giorno specifico da cui provengono i dati target.È possibile modificare questi valori in qualsiasi momento. In questo caso, assicurati di eseguire la cella delle variabili per le modifiche da applicare.
Immettere le seguenti query SQL nelle singole celle del blocco appunti. Eseguire una query selezionando la relativa cella, quindi selezionando la play pulsante. I risultati della query o i registri di errore vengono visualizzati sotto la cella eseguita.
Quando un notebook è inattivo per un periodo di tempo prolungato, la connessione tra il notebook e Query Service può rompersi. In questi casi, riavviare JupyterLab selezionando la Riavvia pulsante si trova nell'angolo in alto a destra accanto al pulsante di alimentazione.
Il kernel del notebook viene ripristinato, ma le celle rimangono, quindi riesegui tutte le celle per continuare da dove hai lasciato.
La query seguente restituisce il conteggio dei visitatori orari per una data specificata:
%%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;
Nella query precedente, la marca temporale nella WHERE
è impostata per essere il valore di target_year
. Includi variabili nelle query SQL includendole tra parentesi graffe ({}
).
La prima riga della query contiene la variabile opzionale hourly_visitor
. I risultati della query verranno memorizzati in questa variabile come un dataframe Pandas. La memorizzazione dei risultati in un dataframe consente di visualizzare i risultati della query in un secondo momento utilizzando un Python pacchetto. Esegui quanto segue Python codice in una nuova cella per generare un grafico a barre:
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)
La query seguente restituisce il conteggio delle azioni orarie per una data specificata:
%%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;
L’esecuzione della query precedente memorizzerà i risultati in hourly_actions
come dataframe. Esegui la funzione seguente in una nuova cella per visualizzare in anteprima i risultati:
hourly_actions.head()
La query di cui sopra può essere modificata per restituire il conteggio delle azioni orarie per un intervallo di date specificato utilizzando operatori logici nella DOVE clausola:
%%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;
L’esecuzione della query modificata memorizza i risultati in hourly_actions_date_range
come dataframe. Esegui la funzione seguente in una nuova cella per visualizzare in anteprima i risultati:
hourly_actions_date_rage.head()
La query seguente restituisce il numero di eventi per sessione visitatore per una data specificata:
%%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;
Esegui quanto segue Python codice per generare un istogramma per il numero di eventi per sessione di 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)
La query seguente restituisce le dieci pagine più popolari per una data specificata:
%%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;
La query seguente restituisce i dieci utenti più attivi per una data specificata:
%%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;
La query seguente restituisce le dieci città che generano la maggior parte delle attività utente per una data specificata:
%%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;
Questo tutorial ha mostrato alcuni esempi di casi d’uso per l’utilizzo di Query Service in Jupyter notebook. Segui le Analizzare i dati utilizzando Jupyter Notebooks esercitazione per vedere come vengono eseguite operazioni simili utilizzando l’SDK di accesso ai dati.