🎯 Definicja

GraphQL w Ataccama to interfejs API umożliwiający programistyczny dostęp do danych, metadanych i operacji zarządzania zasobami w Ataccama ONE, za pomocą języka zapytań GraphQL. Umożliwia on pobieranie i manipulację wybranymi porcji danych z katalogu, systemu reguł, słownika biznesowego i innych komponentów platformy w sposób bardziej elastyczny niż tradycyjne REST API.

🔑 Kluczowe punkty

  • 🧠 Umożliwia programistom i integratorom tworzenie własnych zapytań po danych w stylu deklaratywnym.
  • ⚙️ Działa w modelu “tylko to, co potrzebne” — klient sam określa strukturę odpowiedzi.
  • 🚀 Umożliwia dostęp do zasobów takich jak: obiekty katalogowe, reguły jakości, terminy słownikowe, lineage, użytkownicy.
  • 🔐 Wspiera uwierzytelnienie (np. token JWT) i kontrolę dostępu poprzez role.
  • 📦 Nadaje się do tworzenia własnych interfejsów użytkownika, mikrofrontendów, wizualizacji niestandardowych, automatyzacji.

📚 Szczegółowe wyjaśnienie

Czym jest GraphQL?

GraphQL to alternatywa dla REST, opracowana przez Facebooka, w której klient sam precyzyjnie definiuje, jakie dane są mu potrzebne. W odpowiedzi serwer zwraca tylko to, co zostało zadeklarowane. W Ataccama GraphQL pozwala m.in. na:

  • pobieranie szczegółów katalogu danych (Catalog Items),
  • dostęp do metryk jakości (Data Quality Scores),
  • eksplorację terminów słownikowych i powiązanych reguł (Glossary Terms),
  • tworzenie własnych przeglądarek danych, workflow, dashboardów.

Przykładowe zapytanie

query {
  catalogItem(id: "1234-5678") {
    name
    description
    source {
      name
      type
    }
    glossaryTerms {
      name
      description
    }
    qualityScore {
      value
      lastEvaluated
    }
  }
}

To zapytanie pobiera nazwę, opis, dane źródła, terminy słownikowe i wynik DQ dla podanego elementu katalogowego.

Typowe operacje i obiekty

ObiektOpis
catalogItemDane katalogowe (tabele, widoki, pliki)
glossaryTermTerminy słownikowe i ich połączenia
dqRuleInstanceInstancje reguł jakości danych
dataSourceInformacje o źródłach danych
qualityScoreWyniki profilowania i ewaluacji DQ
user, groupInformacje o kontach użytkowników

GraphQL umożliwia też paginację, filtrowanie i sortowanie wyników; opcjonalnie można dodać parametry (variables).

💡 Przykład zastosowania

  1. Automatyzacja audytu jakości danych
    Skrypt pobierający z API co tydzień wszystkie obiekty z jakością poniżej 80% i zapisujący je do dashboardu w Power BI.

  2. Tworzenie własnej aplikacji frontowej
    Frontend React, który za pomocą GraphQL API buduje mapę liniową pomiędzy słownikami pojęciowymi a obiektami w katalogu.

  3. Generowanie raportów zgodności z RODO
    GraphQL pobiera wszystkie kolumny oznaczone jako PII=true, z ich źródłem, właścicielem i przypisanym terminem biznesowym.

📌 Źródła

👽 Brudnopis

  • Plus GraphQL: tylko jeden endpoint, pełna kontrola nad tym, co pobieram, niska nadmiarowość
  • Ułatwienie dla citizen devs, którzy chcą eksplorować dane bez znajomości szczegółów REST API
  • Przyszłościowo: GraphQL jako warstwa pośrednia między komponentami low-code
  • Rekomendacja: dokumentacja SDL (schema definition language) dla custom typów i relacji
  • Możliwa integracja z systemami Data Mesh, aplikacjami BI, Excel, botami AI