Query-service in Jupyter-laptop
Met Adobe Experience Platform kunt u SQL (Structured Query Language) gebruiken in Data Science Workspace door Query Service als standaardfunctie te integreren in JupyterLab .
In deze zelfstudie worden voorbeelden van SQL-query's getoond voor veelvoorkomende gebruiksscenario's voor het verkennen, transformeren en analyseren van Adobe Analytics -gegevens.
Aan de slag
Voordat u deze zelfstudie kunt starten, moet u aan de volgende voorwaarden voldoen:
-
Toegang tot Adobe Experience Platform . Als u geen toegang hebt tot een organisatie in Experience Platform , neemt u contact op met uw systeembeheerder voordat u verdergaat
-
Een Adobe Analytics dataset
-
Een goed begrip van de volgende belangrijkste concepten die in deze zelfstudie worden gebruikt:
Toegang JupyterLab en Query Service access-jupyterlab-and-query-service
-
Navigeer in Experience Platformnaar Notebooks vanuit de linkernavigatiekolom. Laat JupyterLab even laden.
note note NOTE Als er niet automatisch een nieuw tabblad Launcher wordt weergegeven, opent u een nieuw tabblad Launcher door op File te klikken en vervolgens New Launcher te selecteren. -
Klik op het tabblad Launcher op het pictogram Blank in een Python 3-omgeving om een lege laptop te openen.
note note NOTE Python 3 is momenteel de enige ondersteunde omgeving voor Query Service in laptops. -
Klik in de linkerselectieregel op het pictogram Data en dubbelklik op de map Datasets om alle gegevenssets weer te geven.
-
Zoek een Adobe Analytics dataset om de lijst te onderzoeken en op de lijst met de rechtermuisknop te klikken, Query Data in Notebook te klikken om SQL vragen in de lege notitie te produceren.
-
Klik op de eerste cel die de functie
qs_connect()
bevat en voer deze uit door op de afspeelknop te klikken. Deze functie maakt een verbinding tussen uw laptopinstantie en de Query Service . -
Kopieer de naam van de Adobe Analytics dataset van de tweede gegenereerde SQL-query omlaag. Dit is de waarde na
FROM
. -
Voeg een nieuwe laptopcel in door op de knop + te klikken.
-
Kopieer, plak en voer de volgende instructies voor importeren uit in een nieuwe cel. Deze instructies worden gebruikt om uw gegevens te visualiseren:
code language-python import plotly.plotly as py import plotly.graph_objs as go from plotly.offline import iplot
-
Kopieer en plak vervolgens de volgende variabelen in een nieuwe cel. Wijzig zo nodig de waarden en voer deze uit.
code language-python target_table = "your Adobe Analytics dataset name" target_year = "2019" target_month = "04" target_day = "01"
target_table
: naam van uw Adobe Analytics dataset.target_year
: specifiek jaar waarvan de doelgegevens afkomstig zijn.target_month
: specifieke maand waarvan het doel afkomstig is.target_day
: specifieke dag waarvan de doelgegevens afkomstig zijn.
note note NOTE U kunt deze waarden op elk gewenst moment wijzigen. Zorg er daarbij voor dat u de cel met variabelen uitvoert voor de wijzigingen die moeten worden toegepast.
Uw gegevens opvragen query-your-data
Voer de volgende SQL-query's in afzonderlijke notebookcellen in. Voer een query uit door in de desbetreffende cel te selecteren, gevolgd door de knop play te selecteren. De succesvolle vraagresultaten of foutenlogboeken worden getoond onder de uitgevoerde cel.
Wanneer een laptop gedurende langere tijd inactief is, kan de verbinding tussen de laptop en Query Service verbroken worden. In dergelijke gevallen, nieuw begin JupyterLab door de knoop van het Begin te selecteren die in de hoger-juiste hoek naast de machtsknoop wordt gevestigd.
De notebookkernel wordt opnieuw ingesteld, maar de cellen blijven, en alle cellen worden opnieuw uitgevoerd om verder te gaan waar u was weggegaan.
Aantal uren bezoeker hourly-visitor-count
De volgende query retourneert het aantal bezoekers per uur voor een opgegeven datum:
Query
%%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;
In de bovenstaande query wordt de tijdstempel in de WHERE
-component ingesteld op de waarde van target_year
. Neem variabelen op in SQL-query's door deze tussen accolades te plaatsen ({}
).
De eerste regel van de query bevat de optionele variabele hourly_visitor
. De resultaten van de vraag zullen in deze variabele als dataframe van Pandas worden opgeslagen. Als u resultaten opslaat in een dataframe, kunt u de queryresultaten later visualiseren met een gewenst Python -pakket. Voer de volgende Python code in een nieuwe cel uit om een staafgrafiek te genereren:
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)
Aantal Uuractiviteit hourly-activity-count
De volgende query retourneert het aantal acties per uur voor een opgegeven datum:
Query
%%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;
Als u de bovenstaande query uitvoert, worden de resultaten in hourly_actions
opgeslagen als een dataframe. Voer de volgende functie in een nieuwe cel uit om de resultaten te bekijken:
hourly_actions.head()
De bovengenoemde vraag kan worden gewijzigd om de uuractietelling voor een gespecificeerde datumwaaier terug te keren gebruikend logische exploitanten in WAAR clausule:
Query
%%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;
Als u de gewijzigde query uitvoert, worden de resultaten in hourly_actions_date_range
opgeslagen als een dataframe. Voer de volgende functie in een nieuwe cel uit om de resultaten te bekijken:
hourly_actions_date_rage.head()
Aantal gebeurtenissen per bezoekerssessie number-of-events-per-visitor-session
De volgende query retourneert het aantal gebeurtenissen per bezoekerssessie voor een opgegeven datum:
Query
%%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;
Voer de volgende Python -code uit om een histogram te genereren voor het aantal gebeurtenissen per bezoeksessie:
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)
Populaire pagina's voor een bepaalde dag popular-pages-for-a-given-day
De volgende query retourneert de tien populairste pagina's voor een opgegeven datum:
Query
%%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;
Actieve gebruikers voor een bepaalde dag active-users-for-a-given-day
De volgende query retourneert de tien meest actieve gebruikers voor een opgegeven datum:
Query
%%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;
Actieve steden per gebruikersactiviteit active-cities-by-user-activity
De volgende vraag keert de tien steden terug die een meerderheid van gebruikersactiviteiten voor een gespecificeerde datum produceren:
Query
%%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;
Volgende stappen
Deze zelfstudie laat een aantal voorbeelden zien waarin gebruik wordt gemaakt van Query Service in Jupyter -laptops. Volg analyseert uw gegevens gebruikend Jupyter Notitieboekjesleerprogramma om te zien hoe de gelijkaardige verrichtingen gebruikend de Toegang SDK van Gegevens worden uitgevoerd.