Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:
Databricks SQL
Databricks Runtime
Important
Dieses Feature befindet sich in der Betaversion. Arbeitsbereichsadministratoren können den Zugriff auf dieses Feature über die Vorschauseite steuern. Siehe Manage Azure Databricks Previews.
ai_top_drivers() ist eine tabellenwertige Funktion für die Beitragsanalyse. Es ordnet Dimensionswerte oder Wertepaare, die am meisten zu einer Änderung einer Metrik zwischen einer Kontrollgruppe und einer Testgruppe beitragen. Siehe Argumente für verfügbare Argumente .
Anforderungen
- Databricks Laufzeit 16.1 oder höher
- Pro oder Serverless SQL Warehouse mit aktiviertem Photon oder ein Photon-fähiger Cluster in Databricks Runtime
- Melden Sie Ihren Arbeitsbereich in der Vorschau der Predictive AI Functions an. Siehe Manage Azure Databricks Previews.
Syntax
ai_top_drivers(input => input, metric => metric, is_test => is_test
[, optional_param ] [...])
optional_param:
{ dimensions => dimensions |
aggregation => aggregation |
min_support => min_support }
Argumente
Geben Sie alle Argumente beim Namen durch.
-
inputist der tabellenwertige Input zu analysieren. Stellen Sie eine Tabelle oder Unterabfrage mit der metrischen Spalte, den Dimensionsspalten und der Testlabel-Spalte bereit. -
metricist eineSTRINGBenennung der numerischen Spalte, die analysiert werden soll. Die Spalte muss einen numerischen Typ haben. -
is_testist eineSTRINGBenennung einer booleschen Spalte, die jede Zeile beschriftet.TRUEmarkiert die Testaufteilung undFALSEmarkiert die Kontrollaufteilung. -
dimensions(optional) ist eineARRAY<STRING>Spaltenbezeichnung zum Segmentieren. Numerische Spalten mit niedriger Kardinalität sind nach exakten Werten segmentiert. Numerische Spalten mit hoher Kardinalität werden automatisch inlow,medium, undhighBereiche gruppiert. Wenn Sie dieses Argument weglassen, wählt die Funktion automatisch die obersten 20 korrelierten Dimensionsspalten aus der Eingabe aus. -
aggregation(optional) ist eineSTRINGBenennung des Aggregats, auf das innerhalb jedes Segments angewendetmetricwerden soll. Unterstützte Werte sindsum,avg,count,minundmax. Der Standardwert lautetsum. -
min_support(optional) ist ein zwischenDOUBLE0 und 1, das den minimalen Anteil analytierbarer Zeilen darstellt, den ein Segment abdecken muss, um in den Ergebnissen zu erscheinen. Der Standardwert lautet0.05.
Rückkehr
Die Funktion liefert eine Tabelle mit folgenden Spalten:
-
contributor: UndARRAY<STRING>das beschreibt das Segment. Jedes Element verwendet die Formcolumn=value, zum Beispiel["pickup_zip=high (>10044)"]oder["pickup_zip=high (>10044)", "payment_type=CRD"]. -
metric_control: Die aggregierte Metrik für das Segment in der Kontrollgruppe (is_test=FALSE). -
metric_test: Die aggregierte Metrik für das Segment in der Testgruppe (is_test=TRUE). -
change: Der absolute Unterschied,metric_test−metric_control. -
relative_change: Die Änderung als Bruchteil vonmetric_control. -
support: Der Anteil der insgesamt analytierbaren Zeilen im Segment.
Die Ergebnisse umfassen eindimensionale Mitwirkende, Paare von Dimensionswerten und eine ["all"] Zeile, die die gesamte Population zusammenfasst.
Examples
Das folgende Beispiel vergleicht die gesamten Fahrpreiseinnahmen zwischen Januar und Februar 2016 und zeigt die Abhol-Postleitzahlenbereiche, die am meisten zur Änderung beitragen:
WITH input AS (
SELECT
pickup_zip,
fare_amount,
CASE
WHEN DATE(tpep_pickup_datetime) BETWEEN '2016-01-01' AND '2016-01-31' THEN false
WHEN DATE(tpep_pickup_datetime) BETWEEN '2016-02-01' AND '2016-02-29' THEN true
ELSE NULL
END AS is_test
FROM samples.nyctaxi.trips
WHERE DATE(tpep_pickup_datetime) BETWEEN '2016-01-01' AND '2016-02-29'
)
SELECT *
FROM ai_top_drivers(
input => TABLE(input),
metric => 'fare_amount',
is_test => 'is_test',
dimensions => ARRAY('pickup_zip'),
aggregation => 'sum'
)
ORDER BY ABS(change) DESC
Das folgende Beispiel zählt Fahrten über die Abgabebereiche der Postleitzahlen zwischen denselben Zeiträumen:
WITH input AS (
SELECT
dropoff_zip,
1 AS trip_count,
CASE
WHEN DATE(tpep_pickup_datetime) BETWEEN '2016-01-01' AND '2016-01-31' THEN false
WHEN DATE(tpep_pickup_datetime) BETWEEN '2016-02-01' AND '2016-02-29' THEN true
ELSE NULL
END AS is_test
FROM samples.nyctaxi.trips
WHERE DATE(tpep_pickup_datetime) BETWEEN '2016-01-01' AND '2016-02-29'
)
SELECT *
FROM ai_top_drivers(
input => TABLE(input),
metric => 'trip_count',
is_test => 'is_test',
dimensions => ARRAY('dropoff_zip'),
aggregation => 'count'
)
ORDER BY ABS(change) DESC
Note
Für die count Aggregation stellen Sie eine numerische Spalte zum Zählen bereit. Eine konstante Spalte wie wie 1 AS trip_count ist ein häufiges Muster.
Einschränkungen
Während der Beta gelten folgende Einschränkungen:
- Zeilen mit einem
NULLWert in der Spaltemetricoderis_testwerden vor der Analyse weggelassen. -
count distinctundmedianAggregate werden nicht unterstützt. -
MAPundSTRUCTDimensionsspalten werden nicht unterstützt. Numerische Kennzeichen wie Postleitzahlen und IDs werden als Größen behandelt und können in Bereiche gruppiert werden. Setze numerische Kennungen an, umSTRINGsie nach exaktem Wert zu segmentieren.