Monitorowanie aktywności konta przy użyciu tabel systemowych
W tym artykule wyjaśniono koncepcję tabel systemowych w usłudze Azure Databricks i wyróżniono zasoby, których można użyć, aby jak najlepiej wykorzystać dane tabel systemowych.
Co to są tabele systemowe?
Tabele systemowe to magazyn analityczny hostowany w usłudze Azure Databricks danych operacyjnych konta znajdujących się w wykazie system
. Tabele systemowe mogą służyć do obserwacji historycznej na koncie.
Uwaga
Aby uzyskać dokumentację dotyczącą system.information_schema
programu , zobacz Schemat informacji.
Wymagania
Aby uzyskać dostęp do tabel systemowych, obszar roboczy musi być włączony dla wykazu aparatu Unity. Aby uzyskać więcej informacji, zobacz Włączanie schematów tabel systemowych.
Tabele systemowe nie są dostępne w następujących regionach:
- Regiony Azure (Chiny)
- Regiony Azure Government
- Indie Zachodnie
- Szwajcaria Zachodnia
Które tabele systemowe są dostępne?
Obecnie usługa Azure Databricks hostuje następujące tabele systemowe:
Table | opis | Lokalizacja | Obsługuje przesyłanie strumieniowe | Okres bezpłatnego przechowywania | Obejmuje dane globalne lub regionalne |
---|---|---|---|---|---|
Dzienniki inspekcji (publiczna wersja zapoznawcza) | Zawiera rekordy dla wszystkich zdarzeń inspekcji z obszarów roboczych w Twoim regionie. Aby uzyskać listę dostępnych zdarzeń inspekcji, zobacz Dokumentacja dziennika diagnostycznego. | system.access.audit |
Tak | 365 dni | Regionalny dla zdarzeń na poziomie obszaru roboczego. Globalne dla zdarzeń na poziomie konta. |
Pochodzenie tabeli (publiczna wersja zapoznawcza) | Zawiera rekord dla każdego zdarzenia odczytu lub zapisu w tabeli lub ścieżce wykazu aparatu Unity. | system.access.table_lineage |
Tak | 365 dni | Regionalne |
Pochodzenie kolumn (publiczna wersja zapoznawcza) | Zawiera rekord dla każdego zdarzenia odczytu lub zapisu w kolumnie wykazu aparatu Unity (ale nie zawiera zdarzeń, które nie mają źródła). | system.access.column_lineage |
Tak | 365 dni | Regionalne |
Rozliczane użycie | Zawiera rekordy dotyczące wszystkich rozliczanych użycia na koncie. | system.billing.usage |
Tak | 365 dni | Globalnie |
Cennik | Historyczny dziennik cen jednostek SKU. Rekord jest dodawany za każdym razem, gdy następuje zmiana ceny jednostki SKU. | system.billing.list_prices |
Nie. | Nieograniczony | Globalnie |
Klastry (publiczna wersja zapoznawcza) | Wolno zmieniająca się tabela wymiarów zawierająca pełną historię konfiguracji obliczeniowych w czasie dla dowolnego klastra. | system.compute.clusters |
Tak | Nie dotyczy | Regionalne |
Oś czasu węzła (publiczna wersja zapoznawcza) | Przechwytuje metryki wykorzystania zasobów obliczeniowych dla wszystkich celów i zadań. | system.compute.node_timeline |
Tak | 30 dni | Regionalne |
Typy węzłów (publiczna wersja zapoznawcza) | Przechwytuje obecnie dostępne typy węzłów przy użyciu podstawowych informacji o sprzęcie. | system.compute.node_types |
Nie. | Nie dotyczy | Regionalne |
Magazyny SQL (publiczna wersja zapoznawcza) | Zawiera pełną historię konfiguracji w czasie dla dowolnego magazynu SQL. | system.compute.warehouses |
Tak | 365 dni | Regionalne |
Zdarzenia usługi SQL Warehouse (publiczna wersja zapoznawcza) | Przechwytuje zdarzenia związane z magazynami SQL. Na przykład uruchamianie, zatrzymywanie, uruchamianie, skalowanie w górę i w dół. | system.compute.warehouse_events |
Tak | 365 dni | Regionalne |
Zadania (publiczna wersja zapoznawcza) | Śledzi wszystkie zadania utworzone na koncie. | system.lakeflow.jobs |
Tak | 365 dni | Regionalne |
Zadania zadania (publiczna wersja zapoznawcza) | Śledzi wszystkie zadania podrzędne, które są uruchamiane na koncie. | system.lakeflow.job_tasks |
Tak | 365 dni | Regionalne |
Oś czasu uruchamiania zadania (publiczna wersja zapoznawcza) | Śledzi czasy uruchamiania i zakończenia zadania. | system.lakeflow. job_run_timeline |
Tak | 365 dni | Regionalne |
Oś czasu zadania zadania (publiczna wersja zapoznawcza) | Śledzi czas rozpoczęcia i zakończenia oraz zasoby obliczeniowe używane do uruchamiania zadań podrzędnych. | system.lakeflow. job_task_run_timeline |
Tak | 365 dni | Regionalne |
Zdarzenia lejka w witrynie Marketplace (publiczna wersja zapoznawcza) | Obejmuje dane dotyczące wyświetleń i lejków dla Twoich list. | system.marketplace.listing_ funnel_events |
Tak | 365 dni | Regionalne |
Dostęp do listy w witrynie Marketplace (publiczna wersja zapoznawcza) | Zawiera informacje o użytkownikach dotyczące ukończonych danych żądania lub pobieranie zdarzeń danych na listach. | system.marketplace.listing_ access_events |
Tak | 365 dni | Regionalne |
Optymalizacja predykcyjna (publiczna wersja zapoznawcza) | Śledzi historię operacji funkcji optymalizacji predykcyjnej. | system.storage.predictive_ optimization_operations_history |
Nie. | 180 dni | Regionalne |
Zdarzenia asystenta usługi Databricks (publiczna wersja zapoznawcza) | Śledzi komunikaty użytkowników wysyłane do Asystenta usługi Databricks. | system.access.assistant_events |
Nie. | 365 dni | Regionalne |
Historia zapytań (publiczna wersja zapoznawcza) | Przechwytuje rekordy dla wszystkich zapytań uruchamianych w usłudze SQL Warehouse. | system.query.history |
Nie. | 90 dni | Regionalne |
Wydarzenia w pokoju czyste (publiczna wersja zapoznawcza) | Przechwytuje zdarzenia związane z czystymi pokojami. | system.access.clean_room_events |
Tak | 365 dni | Regionalne |
Użycie punktu końcowego obsługującego model (publiczna wersja zapoznawcza) | Przechwytuje liczbę tokenów dla każdego żądania do modelu obsługującego punkt końcowy i jego odpowiedzi. Aby przechwycić użycie punktu końcowego w tej tabeli, musisz włączyć śledzenie użycia w punkcie końcowym obsługującym usługę. |
system.serving.endpoint_usage . |
Tak | 90 dni | Regionalne |
Model obsługujący dane punktu końcowego (publiczna wersja zapoznawcza) | Wolno zmieniająca się tabela wymiarów, która przechowuje metadane dla każdego obsługiwanego modelu zewnętrznego w punkcie końcowym obsługującym model. | system.serving.served_entities |
Tak | 365 dni | Regionalne |
zdarzenia dostępu do sieci (publiczna wersja zapoznawcza) | Tabela, która rejestruje zdarzenie za każdym razem, gdy dostęp do Internetu zostanie odrzucony z twojego konta. | system.access.outbound_network |
Tak | 365 dni | Regionalne |
Rozliczane użycie i tabele cenowe są bezpłatne. Tabele w publicznej wersji zapoznawczej są również bezpłatne do użycia podczas korzystania z wersji zapoznawczej, ale w przyszłości mogą zostać naliczone opłaty.
Uwaga
Inne tabele systemowe mogą być widoczne na twoim koncie oprócz tych wymienionych powyżej. Te tabele są obecnie w prywatnej wersji zapoznawczej i są domyślnie puste. Jeśli interesuje Cię użycie dowolnej z tych tabel, skontaktuj się z zespołem ds. kont usługi Databricks.
Włączanie schematów tabel systemowych
Ponieważ tabele systemowe są zarządzane przez wykaz aparatu Unity, musisz mieć co najmniej jeden obszar roboczy z obsługą wykazu aparatu Unity na koncie, aby włączyć tabele systemowe i uzyskiwać do nich dostęp. Tabele systemowe zawierają dane ze wszystkich obszarów roboczych na twoim koncie, ale mogą być dostępne tylko z obszaru roboczego z obsługą wykazu aparatu Unity.
Tabele systemowe są włączone na poziomie schematu. Jeśli włączysz schemat systemu, włączysz wszystkie tabele w tym schemacie. Po wydaniu nowych schematów administrator konta musi ręcznie włączyć schemat.
Tabele systemowe muszą być włączone przez administratora konta. Tabele systemowe można włączyć przy użyciu poleceń system-schemas
w interfejsie wiersza polecenia usługi Databricks lub przy użyciu interfejsu API SystemSchemas.
Uwaga
Schemat billing
jest domyślnie włączony. Inne schematy muszą być włączone ręcznie.
Wyświetlanie listy dostępnych schematów systemowych
Użyj następującego polecenia curl, aby wyświetlić listę dostępnych schematów systemowych:
curl -v -X GET -H "Authorization: Bearer <PAT Token>" "https://adb-<xxx>.azuredatabricks.net/api/2.0/unity-catalog/metastores/<metastore-id>/systemschemas"
Poniżej przedstawiono przykładowe dane wyjściowe GET
polecenia:
{"schemas":[{"schema":"access","state":"<AVAILABLE OR EnableCompleted>"},{"schema":"billing","state":"<AVAILABLE OR EnableCompleted>"},{"schema":"information_schema","state":"<AVAILABLE OR EnableCompleted>"}]}
state: AVAILABLE
: Schemat systemu jest dostępny, ale nie został jeszcze włączony.
state: EnableCompleted
: Włączono schemat systemu i jest on widoczny w Eksploratorze wykazu.
Włączanie schematu systemowego
Użyj następującego polecenia curl, aby włączyć schemat systemu:
curl -v -X PUT -H "Authorization: Bearer <PAT Token>" "https://adb-<xxx>.azuredatabricks.net/api/2.0/unity-catalog/metastores/<metastore-id>/systemschemas/<SCHEMA_NAME>"
Jeśli schemat systemu jest włączony pomyślnie, zwracany jest kod 200
wyniku.
W przypadku próby ponownego włączenia schematu systemu zwracane są następujące elementy: "error_code":"SCHEMA_ALREADY_EXISTS","message":"Schema <schema-name> already exists"
.
Wyłączanie schematu systemowego
Użyj następującego polecenia curl, aby wyłączyć schemat systemowy:
curl -v -X DELETE -H "Authorization: Bearer <PAT Token>" "https://adb-<xxx>.azuredatabricks.net/api/2.0/unity-catalog/metastores/<metastore-id>/systemschemas/<SCHEMA_NAME>"
Udzielanie dostępu do tabel systemowych
Dostęp do tabel systemowych podlega katalogowi aparatu Unity. Żaden użytkownik nie ma domyślnie dostępu do tych schematów systemowych. Aby udzielić dostępu, użytkownik, który jest zarówno administratorem magazynu metadanych, jak i administratorem konta, musi przyznać USE
schematy systemowe i SELECT
uprawnienia. Zobacz Zarządzanie uprawnieniami w wykazie aparatu Unity.
Tabele systemowe są tylko do odczytu i nie można ich modyfikować.
Uwaga
Jeśli twoje konto zostało utworzone po 9 listopada 2023 r., być może nie masz domyślnie administratora magazynu metadanych. Aby uzyskać więcej informacji, zobacz Konfigurowanie wykazu aparatu Unity i zarządzanie nim.
Czy tabele systemowe zawierają dane dla wszystkich obszarów roboczych na twoim koncie?
Tabele systemowe zawierają dane operacyjne dla wszystkich obszarów roboczych na koncie wdrożonym w tym samym regionie chmury. Tabele systemu rozliczeniowego zawierają dane dotyczące całego konta.
Mimo że dostęp do tabel systemowych można uzyskać tylko za pośrednictwem obszaru roboczego wykazu aparatu Unity, tabele zawierają również dane operacyjne dla obszarów roboczych wykazu innych niż Unity na twoim koncie.
Gdzie są przechowywane dane tabeli systemowej?
Dane tabeli systemowej konta są przechowywane na koncie magazynu hostowanego w usłudze Azure Databricks znajdującym się w tym samym regionie co magazyn metadanych. Dane są bezpiecznie udostępniane Za pomocą funkcji udostępniania różnicowego.
Każda tabela ma bezpłatny okres przechowywania danych. Aby uzyskać informacje na temat rozszerzania okresu przechowywania, skontaktuj się z zespołem konta usługi Azure Databricks.
Gdzie znajdują się tabele systemowe w Eksploratorze wykazu?
Tabele systemowe na twoim koncie znajdują się w wykazie o nazwie system
, który znajduje się w każdym magazynie metadanych wykazu aparatu Unity. W wykazie system
zostaną wyświetlone schematy, takie jak access
i billing
zawierające tabele systemowe.
Zagadnienia dotyczące tabel systemowych przesyłania strumieniowego
Usługa Azure Databricks używa funkcji Delta Sharing do udostępniania danych tabeli systemowej klientom. Podczas przesyłania strumieniowego przy użyciu funkcji udostępniania różnicowego należy pamiętać o następujących kwestiach:
- Jeśli używasz przesyłania strumieniowego z tabelami systemowymi, ustaw
skipChangeCommits
opcję natrue
. Dzięki temu zadanie przesyłania strumieniowego nie zostanie przerwane z usuwania w tabelach systemowych. Zobacz Ignorowanie aktualizacji i usuwanie. -
Trigger.AvailableNow
nie jest obsługiwana w przypadku przesyłania strumieniowego udostępniania różnicowego. Zostanie on przekonwertowany naTrigger.Once
.
Jeśli używasz wyzwalacza w zadaniu przesyłania strumieniowego i okaże się, że nie nadrabia zaległości do najnowszej wersji tabeli systemu, usługa Databricks zaleca zwiększenie zaplanowanej częstotliwości zadania.
Odczytywanie przyrostowych zmian z tabel systemowych przesyłania strumieniowego
spark.readStream.option("skipChangeCommits", "true").table("system.billing.usage")
Znane problemy
Obecnie nie ma obsługi monitorowania w czasie rzeczywistym. Dane są aktualizowane przez cały dzień. Jeśli nie widzisz dziennika dla ostatniego zdarzenia, sprawdź ponownie później.
Aby włączyć tabele systemowe, może być konieczne przyznanie dostępu sieciowego do punktu końcowego Blob Storage w tabelach systemowych. Aby wyświetlić listę punktów końcowych magazynu tabel systemowych każdego regionu, zobacz Adresy IP punktu końcowego magazynu.
Schematy
system.operational_data
systemowe isystem.lineage
są przestarzałe i będą zawierać puste tabele.__internal_logging
Schemat tabeli systemowej służy do obsługi rejestrowania ładunków przy użyciu tabel wnioskowania. Ten schemat jest widoczny dla administratorów kont, ale nie można go włączyć i nie należy go używać w przypadku przepływów pracy klienta.