Query Service in Jupyter Notebook

Mit Adobe Experience Platform können Sie SQL (Structured Query Language) in Data Science Workspace verwenden, indem Sie Query Service als Standardfunktion in JupyterLab integrieren.

In diesem Tutorial werden Beispiel-SQL-Abfragen für gängige Anwendungsfälle zur Erforschung, Transformation und Analyse von Adobe Analytics-Daten veranschaulicht.

Erste Schritte

Bevor Sie mit diesem Tutorial beginnen, müssen Sie folgende Voraussetzungen erfüllen:

  • Zugriff auf Adobe Experience Platform. Wenn Sie keinen Zugriff auf eine Organisation in Experience Platform haben, wenden Sie sich an Ihren Systemadministrator, bevor Sie fortfahren

  • Ein Adobe Analytics -Datensatz

  • Ein Verständnis der folgenden Schlüsselkonzepte, die in diesem Tutorial verwendet werden:

Zugriff auf JupyterLab und Query Service access-jupyterlab-and-query-service

  1. Navigieren Sie in Experience Platform in der linken Navigationsspalte zu Notebooks . Warten Sie einen Moment, bis JupyterLab geladen ist.

    note note
    NOTE
    Wenn keine neue Registerkarte "Launcher"angezeigt wird, öffnen Sie eine neue Registerkarte "Launcher", indem Sie auf Datei klicken und dann Neuer Launcher auswählen.
  2. Klicken Sie auf der Registerkarte „Launcher“ auf das Symbol Leer in einer Python 3-Umgebung, um ein leeres Notebook zu öffnen.

    note note
    NOTE
    Python 3 ist derzeit die einzige unterstützte Umgebung für Query Service in Notebooks.
  3. Klicken Sie in der linken Auswahlleiste auf das Symbol Daten und doppelklicken Sie auf das Verzeichnis Datensätze, um alle Datensätze aufzulisten.

  4. Suchen Sie einen Adobe Analytics -Datensatz, den Sie untersuchen möchten, und klicken Sie mit der rechten Maustaste auf die Liste und klicken Sie auf Daten in Notebook abfragen , um SQL-Abfragen im leeren Notebook zu generieren.

  5. Klicken Sie auf die erste generierte Zelle, die die Funktion qs_connect() enthält, und führen Sie sie durch Klicken auf die Wiedergabeschaltfläche aus. Diese Funktion erstellt eine Verbindung zwischen Ihrer Notebook-Instanz und dem Query Service.

  6. Kopieren Sie den Datensatznamen Adobe Analytics aus der zweiten generierten SQL-Abfrage. Dieser Wert ist der Wert nach FROM.

  7. Fügen Sie eine neue Notebook-Zelle ein, indem Sie auf die Schaltfläche + klicken.

  8. Kopieren Sie die folgenden Importerklärungen, fügen Sie sie in eine neue Zelle ein und führen Sie sie aus. Diese Erklärungen werden zur Visualisierung Ihrer Daten verwendet:

    code language-python
    import plotly.plotly as py
    import plotly.graph_objs as go
    from plotly.offline import iplot
    
  9. Kopieren Sie anschließend die folgenden Variablen und fügen Sie sie in eine neue Zelle ein. Ändern Sie die Werte nach Bedarf und führen Sie sie dann aus.

    code language-python
    target_table = "your Adobe Analytics dataset name"
    target_year = "2019"
    target_month = "04"
    target_day = "01"
    
    • target_table: Name Ihres Adobe Analytics -Datensatzes.
    • 0: Bestimmtes Jahr, aus dem die Zieldaten stammen.target_year
    • target_month: Bestimmter Monat, aus dem die Zielgruppe stammt.
    • target_day: Bestimmter Tag, aus dem die Zieldaten stammen.
    note note
    NOTE
    Sie können diese Werte jederzeit ändern. Führen Sie dabei die Variablenzelle aus, damit die Änderungen angewendet werden.

Abfragen der Daten query-your-data

Geben Sie die folgenden SQL-Abfragen in die einzelnen Notebook-Zellen ein. Führen Sie eine Abfrage aus, indem Sie sie auf ihre Zelle und dann auf die Schaltfläche play klicken. Erfolgreiche Abfrageergebnisse oder Fehlerprotokolle werden unterhalb der ausgeführten Zelle angezeigt.

Wenn ein Notebook über einen längeren Zeitraum inaktiv ist, kann die Verbindung zwischen dem Notebook und Query Service unterbrochen werden. Starten Sie in solchen Fällen JupyterLab neu, indem Sie die Schaltfläche Neu starten Neustart-Schaltfläche oben rechts neben dem Betriebsschalter auswählen.

Der Notebook-Kernel wird zurückgesetzt, aber die Zellen bleiben, führen Sie alle Zellen erneut aus, um dort weiterzumachen, wo Sie aufgehört haben.

Stündliche Besucherzahl hourly-visitor-count

Die folgende Abfrage gibt die stündliche Besucherzahl für ein bestimmtes Datum zurück:

Abfrage

%%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 der obigen Abfrage wird der Zeitstempel in der WHERE-Klausel auf den Wert von target_year gesetzt. Fügen Sie Variablen in SQL-Abfragen ein, indem Sie diese in geschweifte Klammern setzen ({}).

Die erste Zeile der Abfrage enthält die optionale Variable hourly_visitor. Die Abfrage-Ergebnisse werden in dieser Variablen als Pandas-Dataframe gespeichert. Die Speicherung der Ergebnisse in einem Dataframe ermöglicht es Ihnen, die Abfrageergebnisse später mithilfe eines gewünschten Python -Pakets zu visualisieren. Führen Sie den folgenden Python-Code in einer neuen Zelle aus, um ein Balkendiagramm zu generieren:

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)

Stündliche Aktivitätenzahl hourly-activity-count

Die folgende Abfrage gibt die Anzahl der stündlichen Aktionen für ein bestimmtes Datum zurück:

Abfrage

%%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;

Die Ausführung der oben genannten Abfrage speichert die Ergebnisse in hourly_actions als Dataframe. Führen Sie die folgende Funktion in einer neuen Zelle aus, um eine Vorschau der Ergebnisse anzuzeigen:

hourly_actions.head()

Die obige Abfrage kann geändert werden, um die Anzahl der stündlichen Aktionen für einen bestimmten Datumsbereich zurückzugeben, indem logische Operatoren in der WHERE-Klausel verwendet werden:

Abfrage

%%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;

Die Ausführung der geänderten Abfrage speichert die Ergebnisse in hourly_actions_date_range als Dataframe. Führen Sie die folgende Funktion in einer neuen Zelle aus, um eine Vorschau der Ergebnisse anzuzeigen:

hourly_actions_date_rage.head()

Anzahl der Ereignisse pro Besuchersitzung number-of-events-per-visitor-session

Die folgende Abfrage gibt die Anzahl der Ereignisse pro Besuchersitzung für ein bestimmtes Datum zurück:

Abfrage

%%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;

Führen Sie den folgenden Python -Code aus, um ein Histogramm für die Anzahl der Ereignisse pro Besuchssitzung zu generieren:

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)

Beliebte Seiten an einem bestimmten Tag popular-pages-for-a-given-day

Die folgende Abfrage gibt die zehn beliebtesten Seiten an einem festgelegten Datum zurück:

Abfrage

%%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;

Aktive Benutzer an einem bestimmten Tag active-users-for-a-given-day

In der folgenden Abfrage werden die zehn aktivsten Benutzer an einem bestimmten Datum zurückgegeben:

Abfrage

%%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;

Aktive Städte nach Aktivität des Benutzers active-cities-by-user-activity

In der folgenden Abfrage werden die zehn Städte zurückgegeben, in denen die meisten Aktivitäten an einem bestimmten Datum generiert wurden:

Abfrage

%%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;

Nächste Schritte

In diesem Tutorial wurden einige Beispielverwendungsfälle für die Verwendung von Query Service in Jupyter Notebooks erläutert. Folgen Sie dem Tutorial Analysieren Ihrer Daten mit Jupyter Notebooks, um zu sehen, wie ähnliche Vorgänge mit dem Data Access SDK ausgeführt werden.

recommendation-more-help
cc79fe26-64da-411e-a6b9-5b650f53e4e9