Aller au contenu

Fédération — JOIN cross-Lakehouse avec Cloudera Hive

Parcours personas : alice (mise en place) → carol (analyste) · Catalogues : cloudera (externe) et postgres_oltp_banking (interne) · Durée : ~20 min · Difficulté : étoile étoile étoile

Note statut : cette démo attend le catalogue Cloudera provisionné par le périmètre démo akko-demo-cloudera. Si le catalogue n'est pas encore actif, suivre Admin / Catalog Manager Pro pour l'ajouter manuellement.

Cette démo prouve qu'AKKO sait fédérer un cluster Cloudera Hive externe et exécuter un seul SQL qui jointe une table Cloudera avec une source interne AKKO. Carol n'a ni besoin de copier la donnée ni de changer d'outillage.

Ce que la démo prouve

  • Un cluster Cloudera Hive externe se rajoute en catalogue sans changement de code.
  • Un seul SQL joint la table Hive externe avec la source Postgres interne.
  • Le Query Engine pousse les prédicats des deux côtés.
  • Le rôle de Carol détermine ce qu'elle voit en colonnes et en lignes sur les deux catalogues.

Pré-requis

  • URL démo : https://demo.akko-ai.com
  • Un cluster Cloudera CDP externe joignable depuis le cluster AKKO (Kerberos activé).
  • Catalogue postgres_oltp_banking déjà fédéré.
  • 2 personas provisionnées : alice, carol.

Étape 1 — Alice fédère le catalogue Cloudera

Se connecter en alice. Aller dans Administration → Catalog Manager Pro.

Cliquer Ajouter un catalogue → Hive (Cloudera).

Remplir le formulaire :

  • Nom du catalogue : cloudera
  • Metastore URI : thrift://hms.cloudera.akko-demo:9083
  • Format de fichier par défaut : PARQUET
  • Auth : Kerberos
  • Principal : akko-query/_HOST@AKKO-DEMO.LOCAL
  • Keytab : uploader akko-query.keytab (chiffré au repos)

Cliquer Tester la connexion. Attendu : Connection OK, 4 databases discovered.

Cliquer Save. Le Catalogue auto-synchronise les métadonnées en arrière-plan.

Capture : tests/e2e/playwright/artefacts/demos/federation-cloudera/01-add-catalog.png

Étape 2 — Alice vérifie la visibilité du catalogue

Se déconnecter, se connecter en carol. Aller dans Gouvernance → Explorateur de catalogue.

Attendu : un nouveau catalogue cloudera apparaît avec les databases découvertes. Cliquer cloudera → banking_external.

Tables attendues :

banking_external.partner_transactions   (12 400 000 lignes)
banking_external.partner_merchants      (38 000 lignes)
banking_external.partner_countries      (240 lignes)

Capture : tests/e2e/playwright/artefacts/demos/federation-cloudera/02-cloudera-catalog.png

Étape 3 — Carol écrit le JOIN cross-catalog

Ouvrir DevHub → Éditeur SQL. Lancer :

SELECT
    i.country_code,
    count(DISTINCT i.transaction_id) AS internal_tx,
    count(DISTINCT e.partner_tx_id)  AS external_tx,
    avg(e.exchange_rate)             AS avg_rate
FROM postgres_oltp_banking.public.transactions i
JOIN cloudera.banking_external.partner_transactions e
  ON e.merchant_id = i.merchant_id
 AND e.tx_date     = date(i.transaction_ts)
WHERE i.transaction_ts >= current_date - INTERVAL '30' DAY
GROUP BY i.country_code
ORDER BY internal_tx DESC
LIMIT 20;

Attendu : 20 lignes en ~4 s. Top 5 :

| pays | internal_tx | external_tx | avg_rate |
| FR   | 84 120      | 78 940      | 1,0000   |
| DE   | 41 320      | 39 870      | 1,0000   |
| US   | 28 410      | 27 600      | 1,0820   |
| GB   | 19 240      | 18 990      | 0,8612   |
| CH   | 12 410      | 12 100      | 0,9714   |

Capture : tests/e2e/playwright/artefacts/demos/federation-cloudera/03-join-result.png

Étape 4 — Carol inspecte le predicate pushdown

Dans l'éditeur SQL, cliquer Explain → Distributed plan. Attendu : le plan montre deux sources, avec le filtre date poussé côté Hive et le filtre pays poussé côté Postgres.

Output [country_code, internal_tx, external_tx, avg_rate]
  Aggregate
    InnerJoin [on merchant_id, tx_date]
      RemoteSource postgres_oltp_banking (predicate: ts >= now - 30 days)
      RemoteSource cloudera (predicate: tx_date >= 2026-04-17)

Capture : tests/e2e/playwright/artefacts/demos/federation-cloudera/04-explain-plan.png

Étape 5 — Carol promeut le dashboard

Cliquer Promote to dashboard. ADEN propose un dashboard 4 tuiles :

  1. KPI — Total tx internes (30 j)
  2. KPI — Total tx externes (30 j)
  3. Bar — Internes vs Externes par pays
  4. Table — Détail par pays
+-------------------- AKKO Fédération — Banking cross-source ----------+
| 384 200 tx internes | 372 100 tx externes                            |
+----------------------------------------------------------------------+
| [ Bar : internes vs externes par pays ]  [ Table top 20 ]            |
+----------------------------------------------------------------------+

Capture : tests/e2e/playwright/artefacts/demos/federation-cloudera/05-dashboard.png

Nettoyage

  • Se déconnecter.
  • Optionnel : garder le catalogue pour le cycle de démo suivant.

Ce que la démo prouve

  • Un cluster Cloudera externe s'intègre en un formulaire.
  • Un seul SQL joint l'interne et l'externe sans ETL.
  • Le Query Engine pousse les prédicats des deux côtés.
  • Le rôle de Carol s'applique sur les deux catalogues (ex. PII masquée côté interne).

Fichiers dans le repo

Fichier Rôle
helm/akko/charts/akko-catalog-manager/templates/secret-cloudera.yaml Template Secret keytab Kerberos
trino/catalog/cloudera.properties Fichier catalogue généré

Voir aussi