Data Lake Formation (DLF) prend en charge Paimon, un format lakehouse qui unifie le stockage en temps réel et par lots. Cette rubrique présente trois opérations relatives aux tables Paimon dans DLF : la création, la consultation et la suppression de tables.
Types de tables
DLF prend en charge deux types de tables Paimon. Choisissez le type adapté selon que vos données comportent une clé primaire et selon la nécessité de mises à jour en flux au niveau de chaque ligne.
| Type de table | Clé primaire | Meilleur cas d'utilisation |
|---|---|---|
| Table avec clé primaire | Obligatoire | Traitement en flux, insertions, mises à jour et suppressions en temps réel ; requêtes OLAP filtrées par clé primaire |
| Table en ajout seul | Aucune | Traitement par lots, écritures en flux sans mises à jour par ligne ; OLAP avec index de tri et bitmap |
Tables Paimon entièrement gérées
Toutes les tables Paimon créées dans DLF sont entièrement gérées. DLF contrôle l'ensemble des métadonnées et des fichiers de données sous-jacents. La suppression d'une table entraîne celle des métadonnées et des données.
| Fonctionnalité | Description | Géré automatiquement ? |
|---|---|---|
| Compactage | Fusionne les petits fichiers ; s'exécute indépendamment des écritures de données pour assurer la stabilité des opérations | Oui |
| Écritures concurrentes | Plusieurs tâches d'écriture peuvent écrire simultanément dans la même partition | Oui |
| Métriques au niveau des partitions | Suit le nombre de lignes, le nombre de fichiers et la taille des fichiers en temps réel pour chaque partition | Oui |
| Multiversion (time travel) | Conserve l'historique de la table ; prend en charge les insertions, mises à jour et suppressions granulaires | Oui |
DLF stocke les données dans un chemin généré automatiquement à partir d'un identifiant universel unique (UUID). Aucune configuration manuelle du chemin n'est nécessaire.
Les tables Paimon créées dans DLF utilisent le mode write-only par défaut. Les opérations en arrière-plan — compactage, nettoyage des snapshots et nettoyage des partitions — sont gérées automatiquement par DLF.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Accès à la console Data Lake Formation
Un catalogue et une base de données existants dans DLF
Créer une table Paimon
Créer depuis la console
Connectez-vous à la console Data Lake Formation.
Sur la page de liste Data Catalog, cliquez sur le nom d'un catalogue.
Dans la liste Database, cliquez sur le nom d'une base de données pour ouvrir la liste des tables.
Dans la table list, cliquez sur Create Table.
-
Configurez les paramètres suivants et cliquez sur OK.
Élément de configuration Description Table Format Sélectionnez Paimon Table. Data Table Name Obligatoire. Doit être unique au sein de la base de données. Data Table Description Facultatif. Columns Définissez chaque colonne : nom, indicateur de clé primaire, indicateur NOT NULL, indicateur de champ de partition, type de données, longueur/type et description. Custom Table Properties Ajoutez des propriétés qui remplacent les paramètres par défaut du service de métadonnées de DLF lors de la création de la table. Pour connaître les options disponibles, consultez la documentation officielle de Paimon. Formats de fichier pris en charge : PARQUET, AVRO, ORC, CSV, TEXT, JSON, LANCE et BLOB. Exemple : file.format = LANCE.
Créer via SQL
Si vous avez associé un catalogue sur Flink, EMR (E-MapReduce) ou une autre plateforme, créez les tables directement sur ces plateformes ; les métadonnées sont écrites directement dans DLF. Pour plus de détails, consultez la rubrique Intégration du moteur.
Tables avec clé primaire
Une table avec clé primaire utilise une clé primaire comme identifiant unique de ligne. Elle prend en charge les insertions, mises à jour et suppressions en temps réel, et génère automatiquement des journaux de modifications pour les consommateurs de flux en aval. Utilisez ce type de table pour le traitement des données en flux et les requêtes de traitement analytique en ligne (OLAP) filtrées par clé primaire.
Flink SQL
CREATE TABLE orders (
order_id BIGINT,
price BIGINT,
customer STRING,
PRIMARY KEY NOT ENFORCED(order_id)
);
Spark SQL
CREATE TABLE orders (
order_id BIGINT,
price BIGINT,
customer STRING
) TBLPROPERTIES (
'primary-key' = 'order_id'
);
Allocation des buckets (mode Postpone Bucket)
DLF utilise le mode Postpone Bucket par défaut. Cette stratégie adaptative ajuste dynamiquement le nombre de buckets en fonction du volume de données de la partition, évitant ainsi la dégradation des performances en lecture due à un nombre excessif de buckets et les goulets d'étranglement en écriture liés à un nombre insuffisant de buckets.
Visibilité des données en mode Postpone : Les données nouvellement écrites ne sont visibles qu'une fois le compactage terminé. Pour éliminer cette latence :
Utilisez Flink (VVR 11.4 ou version ultérieure) ou Spark (esr-4.5 ou version ultérieure). Ces versions écrivent les lots directement dans les buckets, supprimant ainsi la latence.
Pour les tables sensibles à la latence, définissez explicitement le nombre de buckets. Exemple :
'bucket' = '5'. Visez un bucket pour 1 Go de données de partition.
Mise en bucket dynamique et mise à l'échelle automatique
Configuration avancée
Configurez les options Paimon suivantes pour un ajustement supplémentaire des tables avec clé primaire :
moteur de fusion : Définissez une logique de fusion personnalisée pour les calculs complexes lors du compactage.
Deletion Vectors (
deletion-vectors.enabled = true) : Améliore considérablement les performances des requêtes. Après activation, toutes les données nouvellement écrites ne sont visibles qu'après compactage, quel que soit le mode de bucket. Cela nécessite davantage de ressources de compactage, mais offre des performances de requête plus stables.changelog-producer (
changelog-producer = 'lookup') : Génère des journaux de modifications complets pour les lectures de flux en aval.sequence.field : Gère les données désordonnées et garantit la séquence correcte des mises à jour.
Si vos données en amont sont des données Change Data Capture (CDC), utilisez Flink CDC ou un produit d'intégration de données pour charger les données dans DLF. Ces outils prennent en charge la synchronisation complète de la base de données, la création automatique de tables et la synchronisation du schéma.
Pour des requêtes OLAP haute performance, activez le mode Deletion Vectors. Bien qu'il consomme davantage de ressources de compactage, il offre des requêtes OLAP plus stables et plus performantes.
Tables en ajout seul
Une table en ajout seul ne possède pas de clé primaire. Elle ne prend pas en charge les mises à jour en flux au niveau de chaque ligne, mais ses performances en traitement par lots sont nettement supérieures à celles des tables avec clé primaire. Utilisez-la pour la plupart des charges de travail par lots ou les scénarios de flux où les mises à jour par ligne ne sont pas nécessaires.
Les tables en ajout seul prennent en charge :
Les écritures et lectures en flux, DLF fusionnant automatiquement les petits fichiers en arrière-plan
Les opérations granulaires
DELETE,UPDATEetMERGE INTOLa gestion des versions et le time travel
L'accélération des requêtes via le tri et les index bitmap, avec d'excellentes performances de lecture directe pour les moteurs OLAP
Flink SQL
CREATE TABLE orders (
order_id BIGINT,
price BIGINT,
customer STRING
);
Spark SQL
CREATE TABLE orders (
order_id BIGINT,
price BIGINT,
customer STRING
);
Consulter une table de données
Dans la liste Database, cliquez sur le nom d'une base de données pour ouvrir la liste des tables.
Dans la table list, cliquez sur le nom d'une table pour afficher ses champs.
-
Cliquez sur l'onglet Table Details pour afficher les informations de base de la table, la liste des champs et la liste des partitions.
RemarqueSur l'onglet Table Details, vous pouvez modifier manuellement la classe de stockage pour les tables partitionnées et non partitionnées. Pour plus de détails, consultez la rubrique Modifier manuellement la classe de stockage.
Cliquez sur l'onglet Permissions pour accorder des autorisations au niveau de la table aux utilisateurs ou aux rôles. Pour plus de détails, consultez la rubrique Gestion des autorisations de données.
Supprimer une table de données
La suppression d'une table entraîne la suppression de ses métadonnées et de ses données. Les données sont conservées pendant un jour par mesure de sécurité contre les suppressions accidentelles. Au-delà de ce délai, les données sont définitivement supprimées.
Dans la liste Database, cliquez sur le nom d'une base de données pour ouvrir la liste des tables.
Dans la table list, cliquez sur Delete dans la colonne Actions.
Dans la boîte de dialogue, cliquez sur OK.