🎯 Definicja

AQL (Advanced Query Language) to specjalistyczny język zapytań wykorzystywany w systemach zarządzania metadanymi (takich jak Ataccama ONE), umożliwiający zaawansowane wyszukiwania i filtrowanie struktur modelu metadanych, obiektów katalogu danych, relacji oraz właściwości w meta-metamodelu. Pozwala na konstrukcję złożonych zapytań warunkowych, logicznych i agregujących bezpośrednio na poziomie semantycznym modeli danych.

🔑 Kluczowe punkty

  • Pozwala budować złożone filtry, selekcje i reguły na obiektach metadanych oraz ich relacjach.
  • Obsługuje operatory logiczne (AND, OR, NOT), porównania (=, >, IN), nawigację po relacjach i kolekcjach.
  • Wspiera zarówno wyszukiwania tekstowe, jak i warunki na własnościach oraz typach obiektów.
  • Służy do przeszukiwania rozbudowanych środowisk katalogu, np. znajdowania obiektów z określonym tagiem, bez właściciela, z określonym statusem lub zgodnością jakości.
  • Umożliwia definiowanie dynamicznych widoków, workflow, powiadomień oraz automatyzacji z poziomu platformy.

📚 Szczegółowe wyjaśnienie

AQL (w Ataccama, Collibra lub innych systemach katalogowania i zarządzania metadanymi) często działa podobnie do zapytań SQL lub języków zapytań typowych dla grafów (np. Cypher, GraphQL), jednak zamiast operować na tabelach – pracuje na obiektach modelu metadanych.

Składnia i możliwości:

  • Zapytania mogą dotyczyć dowolnego poziomu modelu – od źródeł danych, przez elementy katalogowe, po szczegółowe atrybuty (np. kolumny).
  • Możliwa jest nawigacja po relacjach (np. parent-child, references, derived from).
  • Wspiera operacje na kolekcjach (np. znajdź wszystkie obiekty, które zawierają określony tag i są typu „Tabela”).
  • Pozwala agregować i sortować wyniki (np. wszystkie obiekty danego typu pogrupowane po statusie monitorowania).
  • Stosowane w zapytaniach API, workflow automatyzujących, niestandardowych widokach dashboardów lub raportach compliance.

Przykładowe frazy i operatory:

OperatorOpis
=Porównanie wartości
IN, NOT INSprawdzenie wartości w zbiorze
LIKEDopasowanie wzorca tekstowego
EXISTSSprawdzenie istnienia relacji/właściwości
ORDER BYSortowanie wyników zapytania

💡 Przykład zastosowania

Znajdź wszystkie elementy katalogowe typu „Tabela”, których właściciel (Owner) nie został przypisany i które posiadają kolumnę z terminem słownikowym „Customer Email”:

SELECT item
FROM CatalogItem item
WHERE item.type = 'Table'
  AND item.owner IS NULL
  AND EXISTS (
    SELECT a
    FROM item.attributes a
    WHERE a.glossaryTerm = 'Customer Email'
  )

Inny przykład – wyszukiwanie obiektów z niezalecanymi wartościami dla atrybutu (np. „status” IN ['archived', 'deprecated']):

SELECT *
FROM CatalogItem
WHERE status IN ('archived', 'deprecated')

AQL może być uruchamiane w panelu zaawansowanego wyszukiwania platformy lub z poziomu API do automatycznych audytów i raportów.

📌 Źródła

👽 Brudnopis

  • AQL ≈ SQL/Cypher → dedykowany metamodelowi, nie tabelom produkcyjnym.
  • Idealny do dynamicznych dashboardów: „pokaż wszystkie obiekty, które …”, monitorowania DQ, workflow na taskach.
  • Platforma zwykle ma kreator lub podpowiedzi składni w GUI – promuje automatyzację governance.
  • Integracja z GraphQL/API oraz językiem reguł (np. Condition Builder dla zaawansowanych użytkowników).