Referenz zur Systemtabelle für Warehouse-Ereignisse
Wichtig
Diese Systemtabelle befindet sich in der Public Preview. Um auf die Tabelle zuzugreifen, muss das Schema in Ihrem system
Katalog aktiviert sein. Weitere Informationen finden Sie unter Aktivieren des Systemtabellenschemas.
In diesem Artikel erfahren Sie, wie Sie die Systemtabelle für Warehouse-Ereignisse verwenden, um die SQL-Warehouses in Ihren Arbeitsbereichen zu überwachen und zu verwalten. Diese Tabelle zeichnet jedes Mal, wenn ein Warehouse beginnt, stoppt, läuft und skaliert wird, eine Zeile auf. Sie können die Beispielabfragen in diesem Artikel mit Warnungen verwenden, um über Änderungen an Ihren Warehouses informiert zu werden.
Tabellenpfad: Diese Systemtabelle befindet sich unter system.compute.warehouse_events
.
Protokollierte Warehouse-Ereignistypen
Diese Systemtabelle protokolliert die folgenden Ereignistypen:
SCALED_UP
: Dem Warehouse wurde ein neuer Cluster hinzugefügt.SCALED_DOWN
: Ein Cluster wurde aus dem Warehouse entfernt.STOPPING
: Das Warehouse wird gerade gestartet.RUNNING
: Das Warehouse wird aktiv ausgeführt.STARTING
: Das Warehouse wird gerade gestartet.STOPPED
: Das Warehouse wurde vollständig beendet.
Warehouse-Ereignisschema
Die warehouse_events
-Systemtabelle verwendet das folgende Schema:
Spaltenname | Datentyp | Beschreibung | Beispiel |
---|---|---|---|
account_id |
Zeichenfolge | Die ID des Azure Databricks-Kontos. | 7af234db-66d7-4db3-bbf0-956098224879 |
workspace_id |
Zeichenfolge | Die ID des Arbeitsbereichs, in dem das Warehouse bereitgestellt wird. | 123456789012345 |
warehouse_id |
Zeichenfolge | Die ID des SQL-Warehouses, mit dem das Ereignis verknüpft ist. | 123456789012345 |
event_type |
Zeichenfolge | Der Typ des Warehouse-Ereignisses. Mögliche Werte sind SCALED_UP , SCALED_DOWN , STOPPING , RUNNING , STARTING und STOPPED . |
SCALED_UP |
cluster_count |
integer | Die Anzahl der Cluster, die aktiv ausgeführt werden. | 2 |
event_time |
Zeitstempel | Zeitstempel des Zeitpunkts in UTC, an dem das Ereignis stattgefunden hat | 2023-07-20T19:13:09.504Z |
Beispielabfragen
Die folgenden Beispielabfragen sind Vorlagen. Fügen Sie beliebige Werte ein, die für Ihre Organisation sinnvoll sind. Sie können diesen Abfragen auch Benachrichtigungen hinzufügen, damit Sie über Änderungen an Ihren Warehouses informiert werden. Siehe Erstellen einer Warnung.
Verwenden Sie die folgenden Beispielabfragen, um Einblicke in das Warehouse-Verhalten zu erhalten:
- Welche Warehouses laufen aktiv und wie lange?
- Identifizieren von Warehouses, die länger als erwartet hochskaliert sind
- Warehouses, die zum ersten Mal starten
- Untersuchen von Abrechnungsgebühren
- Welche Warehouses wurden in den letzten 30 Tagen nicht verwendet?
- Warehouses mit der längsten Betriebszeit in einem Monat
- Warehouses, die die meiste Zeit im Laufe eines Monats hochskaliert haben
Welche Warehouses laufen aktiv und wie lange?
Diese Abfrage gibt an, welche Warehouses derzeit zusammen mit ihrer Laufzeit in Stunden aktiv sind.
USE CATALOG `system`;
SELECT
we.warehouse_id,
we.event_time,
TIMESTAMPDIFF(MINUTE, we.event_time, CURRENT_TIMESTAMP()) / 60.0 AS running_hours,
we.cluster_count
FROM
compute.warehouse_events we
WHERE
we.event_type = 'RUNNING'
AND NOT EXISTS (
SELECT 1
FROM compute.warehouse_events we2
WHERE we2.warehouse_id = we.warehouse_id
AND we2.event_time > we.event_time
)
Warnungsmöglichkeit: Als Arbeitsbereichsadministrator*in sollten Sie benachrichtigt werden, wenn ein Warehouse länger als erwartet ausgeführt wird. Sie können beispielsweise die Abfrageergebnisse verwenden, um eine Warnungsbedingung festzulegen, die ausgelöst wird, wenn die Betriebsstunden einen bestimmten Schwellenwert überschreiten.
Identifizieren von Warehouses, die länger als erwartet hochskaliert sind
Diese Abfrage gibt an, welche Warehouses derzeit zusammen mit ihrer Laufzeit in Stunden aktiv sind.
use catalog `system`;
SELECT
we.warehouse_id,
we.event_time,
TIMESTAMPDIFF(MINUTE, we.event_time, CURRENT_TIMESTAMP()) / 60.0 AS upscaled_hours,
we.cluster_count
FROM
compute.warehouse_events we
WHERE
we.event_type = 'SCALED_UP'
AND we.cluster_count >= 2
AND NOT EXISTS (
SELECT 1
FROM compute.warehouse_events we2
WHERE we2.warehouse_id = we.warehouse_id
AND (
(we2.event_type = 'SCALED_DOWN') OR
(we2.event_type = 'SCALED_UP' AND we2.cluster_count < 2)
)
AND we2.event_time > we.event_time
)
Warnungsmöglichkeit: Die Warnung bei dieser Bedingung kann Ihnen helfen, Ressourcen und Kosten zu überwachen. Sie können eine Warnung festlegen, wenn die hochskalierten Stunden einen bestimmten Grenzwert überschreiten.
Warehouses, die zum ersten Mal starten
Diese Abfrage informiert Sie über neue Warehouses, die zum ersten Mal starten.
use catalog `system`;
SELECT
we.warehouse_id,
we.event_time,
we.cluster_count
FROM
compute.warehouse_events we
WHERE
(we.event_type = 'STARTING' OR we.event_type = 'RUNNING')
AND NOT EXISTS (
SELECT 1
FROM compute.warehouse_events we2
WHERE we2.warehouse_id = we.warehouse_id
AND we2.event_time < we.event_time
)
Warnungsmöglichkeit: Die Benachrichtigung bei neuen Warehouses kann Ihrer Organisation helfen, die Ressourcenzuordnung nachzuverfolgen. Sie können beispielsweise eine Warnung festlegen, die jedes Mal ausgelöst wird, wenn ein neues Warehouses startet.
Untersuchen von Abrechnungsgebühren
Wenn Sie genau verstehen möchten, was ein Warehouse getan hat, um Abrechnungsgebühren zu generieren, kann diese Abfrage Ihnen die genauen Datums- und Uhrzeitangaben mitteilen, zu denen das Warehouse nach oben oder unten skaliert oder gestartet und geendet hat.
use catalog `system`;
SELECT
we.warehouse_id AS warehouse_id,
we.event_type AS event,
we.event_time AS event_time,
we.cluster_count AS cluster_count
FROM
compute.warehouse_events AS we
WHERE
we.event_type IN (
'STARTING', 'RUNNING', 'STOPPING', 'STOPPED',
'SCALING_UP', 'SCALED_UP', 'SCALING_DOWN', 'SCALED_DOWN'
)
AND MONTH(we.event_time) = 7
AND YEAR(we.event_time) = YEAR(CURRENT_DATE())
AND we.warehouse_id = '19c9d68652189278'
ORDER BY
event_time DESC
Welche Warehouses wurden in den letzten 30 Tagen nicht verwendet?
Diese Abfrage hilft Ihnen, nicht verwendete Ressourcen zu identifizieren, wodurch eine Kostenoptimierung möglich ist.
use catalog `system`;
SELECT
we.warehouse_id,
we.event_time,
we.event_type,
we.cluster_count
FROM
compute.warehouse_events AS we
WHERE
we.warehouse_id IN (
SELECT DISTINCT
warehouse_id
FROM
compute.warehouse_events
WHERE
MONTH(event_time) = 6
AND YEAR(event_time) = YEAR(CURRENT_DATE())
)
AND we.warehouse_id NOT IN (
SELECT DISTINCT
warehouse_id
FROM
compute.warehouse_events
WHERE
MONTH(event_time) = 7
AND YEAR(event_time) = YEAR(CURRENT_DATE())
)
ORDER BY
event_time DESC
Warnungsmöglichkeit: Wenn Sie eine Benachrichtigung zu nicht verwendeten Ressourcen erhalten, kann Ihre Organisation die Kosten optimieren. Sie können beispielsweise eine Warnung festlegen, die ausgelöst wird, wenn die Abfrage ein nicht verwendetes Warehouse erkennt.
Warehouses mit der längsten Betriebszeit in einem Monat
Diese Abfrage zeigt an, welche Warehouses während eines bestimmten Monats am häufigsten verwendet wurden. Diese Abfrage verwendet „Juli“ als Beispiel.
use catalog `system`;
SELECT
warehouse_id,
SUM(TIMESTAMPDIFF(MINUTE, start_time, end_time)) / 60.0 AS uptime_hours
FROM (
SELECT
starting.warehouse_id,
starting.event_time AS start_time,
(
SELECT
MIN(stopping.event_time)
FROM
compute.warehouse_events AS stopping
WHERE
stopping.warehouse_id = starting.warehouse_id
AND stopping.event_type = 'STOPPED'
AND stopping.event_time > starting.event_time
) AS end_time
FROM
compute.warehouse_events AS starting
WHERE
starting.event_type = 'STARTING'
AND MONTH(starting.event_time) = 7
AND YEAR(starting.event_time) = YEAR(CURRENT_DATE())
) AS warehouse_uptime
WHERE
end_time IS NOT NULL
GROUP BY
warehouse_id
ORDER BY
uptime_hours DESC
Warnungsmöglichkeit: Möglicherweise möchten Sie Warehouses mit hoher Auslastung nachverfolgen. Sie können beispielsweise eine Warnung festlegen, die ausgelöst wird, wenn die Betriebszeiten für ein Warehouse einen bestimmten Schwellenwert überschreiten.
Warehouses, die die meiste Zeit im Laufe eines Monats hochskaliert haben
Diese Abfrage informiert Sie über Warehouses, die während eines Monats erheblich viel Zeit im hochskalierten Zustand verbracht haben. Diese Abfrage verwendet „Juli“ als Beispiel.
use catalog `system`;
SELECT
warehouse_id,
SUM(TIMESTAMPDIFF(MINUTE, upscaled_time, downscaled_time)) / 60.0 AS upscaled_hours
FROM (
SELECT
upscaled.warehouse_id,
upscaled.event_time AS upscaled_time,
(
SELECT
MIN(downscaled.event_time)
FROM
compute.warehouse_events AS downscaled
WHERE
downscaled.warehouse_id = upscaled.warehouse_id
AND (downscaled.event_type = 'SCALED_DOWN' OR downscaled.event_type = 'STOPPED')
AND downscaled.event_time > upscaled.event_time
) AS downscaled_time
FROM
compute.warehouse_events AS upscaled
WHERE
upscaled.event_type = 'SCALED_UP'
AND upscaled.cluster_count >= 2
AND MONTH(upscaled.event_time) = 7
AND YEAR(upscaled.event_time) = YEAR(CURRENT_DATE())
) AS warehouse_upscaled
WHERE
downscaled_time IS NOT NULL
GROUP BY
warehouse_id
ORDER BY
upscaled_hours DESC
Warnungsmöglichkeit: Möglicherweise möchten Sie Warehouses mit hoher Auslastung nachverfolgen. Sie können beispielsweise eine Warnung festlegen, die ausgelöst wird, wenn die Betriebszeiten für ein Warehouse einen bestimmten Schwellenwert überschreiten.