Hologres est un moteur d'analyse interactive en temps réel compatible avec PostgreSQL et profondément intégré à MaxCompute. En créant des tables externes dans Hologres, vous pouvez interroger directement les données MaxCompute sans les déplacer, puis connecter un outil de BI pour visualiser les résultats.
Ce tutoriel présente un exemple complet basé sur un jeu de données de magasins Taobao : il montre comment interroger les données démographiques des clients stockées dans MaxCompute et afficher leur profil dans Quick BI.
À la fin de ce tutoriel, vous aurez :
Créé dans Hologres des tables externes mappant les tables MaxCompute
Exécuté des requêtes SQL analytiques sur plus de 12 millions d'enregistrements clients
Connecté Quick BI à Hologres pour afficher les résultats sous forme de graphiques interactifs
Contraintes
Avant de commencer, tenez compte des contraintes suivantes :
Même région requise : Hologres ne peut pas interroger les tables MaxCompute situées dans une région différente de celle de l'instance Hologres. Activez les deux services dans la même région.
Aperçu partiel des données : L'onglet Data Preview affiche uniquement un échantillon des données de la table externe, et non l'intégralité du jeu de données.
Prérequis
Avant de commencer, assurez-vous d'avoir :
Activé MaxCompute. Consultez la rubrique Activer MaxCompute et DataWorks.
Acheté une instance Hologres et connecté celle-ci à HoloWeb. Consultez la rubrique Se connecter à HoloWeb et effectuer des requêtes.
Activé Quick BI. Consultez la rubrique Prérequis.
Fonctionnement

Les données de visite des clients sont stockées dans des tables MaxCompute.
Une table externe est créée dans Hologres pour accélérer les requêtes sur les données MaxCompute.
Quick BI se connecte à l'instance Hologres pour afficher le profil client sous forme de visualisations.
Étape 1 : Préparer une source de données MaxCompute
Ce tutoriel utilise les tables existantes suivantes dans le projet MaxCompute public_data.
| Table MaxCompute | Nombre d'enregistrements |
|---|---|
| customer | 12 millions |
| customer_address | 6 millions |
| customer_demographics | 1,92 million |
Pour utiliser vos propres données, créez des tables dans MaxCompute et importez-y les données. Consultez la rubrique Créer des tables.
Étape 2 : Créer des tables externes dans Hologres
Créez des tables externes dans HoloWeb pour mapper les tables MaxCompute.
Créer une table externe
Connectez-vous à la console HoloWeb.
Dans la barre de navigation supérieure, choisissez Metadata Management > MaxCompute Query Acceleration > Create Foreign Table.
Saisissez le nom de la table MaxCompute à interroger, par exemple
public_data.customer. Les champs de la table s'affichent.Sélectionnez les champs à synchroniser, puis cliquez sur Submit.
Pour créer plusieurs tables externes simultanément, exécutez l'instruction SQL suivante sur la page Ad-hoc Query :
IMPORT FOREIGN SCHEMA public_data LIMIT to(
customer,
customer_address,
customer_demographics,
inventory,item,
date_dim,
warehouse)
FROM server odps_server INTO PUBLIC options(if_table_exist 'update');
Aperçu des données de la table externe
Dans le panneau Instance Management, faites un clic droit sur la table externe et sélectionnez Open Table. Sur la page des détails de la table, cliquez sur Data Preview.
Interroger les données
Sur la page des détails de la table, cliquez sur Query table. Sur la page Ad-hoc Query, saisissez les instructions SQL dans l'éditeur de code et cliquez sur l'icône Run.
Les quatre exemples de requêtes ci-dessous s'exécutent sur les tables customer et customer_address du projet public_data.
-- SQL 1: Count customers by preferred flag, sorted descending
SELECT c_preferred_cust_flag,
count(*) AS cnt
FROM customer
WHERE c_preferred_cust_flag IS NOT NULL
GROUP BY c_preferred_cust_flag
ORDER BY cnt DESC LIMIT 10;
-- SQL 2: Count customers by birth year (years with more than 1,000 customers)
SELECT c_birth_year,
count(*) AS cnt
FROM customer
WHERE c_birth_year IS NOT NULL
GROUP BY c_birth_year HAVING count(*) > 1000
ORDER BY cnt DESC LIMIT 10;
-- SQL 3: Count customers by city (cities with more than 10 customers)
SELECT ca_city,
count(*) AS cnt
FROM customer ,
customer_address
WHERE c_current_addr_sk = ca_address_sk
AND ca_city IS NOT NULL
GROUP BY ca_city HAVING count(*) > 10
ORDER BY cnt DESC LIMIT 10;
-- SQL 4: Preferred customers born between 1980 and 1989, by city
SELECT ca_city,
count(*) AS cnt
FROM customer ,
customer_address
WHERE c_current_addr_sk = ca_address_sk
AND c_birth_year >= 1980
AND c_birth_year < 1990
AND c_preferred_cust_flag = 'Y'
AND ca_city IS NOT NULL
GROUP BY ca_city HAVING count(*) > 10
ORDER BY cnt DESC LIMIT 10;
Étape 3 : Visualiser les résultats dans Quick BI
Connectez Quick BI à l'instance Hologres pour afficher les résultats des requêtes sous forme de graphiques.
Ajoutez une source de données. Connectez-vous à la console Quick BI et ajoutez Hologres en tant que source de données PostgreSQL. Consultez la rubrique Quick BI.
-
Créez un ensemble de données. Après avoir connecté Quick BI à Hologres, créez un ensemble de données et importez les données requises pour produire des rapports.
Affichez le profil client. Construisez et affichez des rapports en fonction de vos besoins métier.
Étapes suivantes
Pour générer davantage de rapports, ajoutez d'autres tables externes depuis MaxCompute et créez de nouveaux ensembles de données dans Quick BI.
Pour en savoir plus sur la syntaxe des tables externes utilisée dans ce tutoriel, consultez la documentation PostgreSQL postgres_fdw.