Découvrir des données

Ce guide explique comment activer et utiliser la découverte Dataplex. La détection analyse et extrait les métadonnées des données d'un lac de données, puis les enregistre dans Dataproc Metastore, BigQuery et Data Catalog à des fins d'analyse, de recherche et d'exploration.

Présentation

Pour chaque élément Dataplex pour lequel la découverte est activée, Dataplex effectue les opérations suivantes:

  • Analyse les données associées à l'élément.
  • Regroupe les fichiers structurés et semi-structurés en tables.
  • collecte les métadonnées techniques, telles que le nom de la table, le schéma et la définition de la partition.

Pour les données non structurées, telles que les images et les vidéos, Dataplex Discovery détecte et enregistre automatiquement les groupes de fichiers de partage de type multimédia en tant qu'ensembles de fichiers. Par exemple, si gs://images/group1 contient des images GIF et que gs://images/group2 contient des images JPEG, Dataplex Discovery détecte et enregistre deux ensembles de fichiers. Pour les données structurées telles qu'Avro, Discovery ne détecte les fichiers que s'ils se trouvent dans des dossiers contenant le même format de données et le même schéma.

Les tables et les ensembles de fichiers découverts sont enregistrés dans Data Catalog pour la recherche et la découverte. Les tables apparaissent dans Dataproc Metastore en tant que tables de style Hive et dans BigQuery en tant que tables externes. Ainsi, les données sont automatiquement disponibles pour l'analyse.

Discovery accepte les formats de données structurées et semi-structurées suivants:

Discovery accepte les formats de compression suivants pour les données structurées et semi-structurées:

  • Compression interne pour ces formats:

    Compression Exemple d'extension de fichier Format accepté
    gzip .gz.parquet Parquet
    lz4 lz4.parquet Parquet
    Snappy .snappy.parquet Parquet, ORC, Avro
    lzo .lzo.parquet Parquet, Oregon
  • Compression externe pour les fichiers JSON et CSV:

    • gzip
    • bzip2

Configuration de la découverte

La découverte est activée par défaut lorsque vous créez une zone ou un élément. Vous pouvez désactiver la détection au niveau de la zone ou de l'élément.

Lorsque vous créez une zone ou un élément, vous pouvez choisir d'hériter des paramètres de découverte au niveau de la zone ou de les remplacer au niveau de l'élément.

Voici les options de configuration de la détection disponibles au niveau des zones et des éléments:

  • Découverte activée et désactivée :

  • Planification de la découverte: cette option peut être définie sur une planification prédéfinie (par exemple, toutes les heures ou tous les jours), ou sur une planification personnalisée définie par un format Cron. Les nouveaux éléments sont analysés lorsqu'ils sont ajoutés. Pour en savoir plus, consultez la section Configurer des planifications Cron. Recommandation: Planifiez l'exécution de Discovery toutes les heures ou moins fréquemment.

  • Modèle d'inclusion ou d'exclusion: définissez les fichiers à inclure ou à exclure des analyses de découverte en utilisant des modèles glob dans le chemin d'inclusion ou d'exclusion. Par exemple, si vous souhaitez exclure gs://test_bucket/foo/.. de la détection, saisissez **/foo/* comme chemin d'exclusion. Les guillemets provoquent des erreurs. Veillez à saisir **/foo/* au lieu de "**/foo/*".) Cette fonction n'est disponible que pour les éléments Cloud Storage. Lorsque les modèles d'inclusion et d'exclusion existent en même temps, les formats d'exclusion sont appliqués en premier.

  • Spécifications JSON ou CSV: vous pouvez fournir des informations supplémentaires sur les données semi-structurées, telles que CSV et JSON, pour améliorer la précision des résultats de la découverte.

    • Pour les fichiers CSV, vous pouvez fournir l'un des éléments suivants:

      • Delimiter (Délimiteur) : ce champ n'accepte qu'un seul caractère, à l'exception de \r et \n. Si plusieurs caractères sont fournis, seul le premier caractère de la chaîne est utilisé. Si aucune valeur n'est fournie, Discovery utilise une virgule comme délimiteur.

      • Nombre de lignes d'en-tête:ce champ accepte les valeurs 0 ou 1. La valeur par défaut est 0. Lorsque la valeur est 0, Discovery effectue une inférence d'en-tête. Si un en-tête est détecté, Discovery extrait les noms de colonne de l'en-tête et réinitialise la valeur sur 1.

      • Encodage:ce champ accepte les noms d'encodage de chaîne, tels que UTF-8, US-ASCII ou ISO-8859-1. Si rien n'est spécifié, UTF-8 est utilisé par défaut.

      • Désactiver l'inférence de type:ce champ accepte une valeur booléenne. Par défaut, il est défini sur false. Pour les données CSV, si vous désactivez l'inférence de type, toutes les colonnes sont enregistrées en tant que chaînes.

    • Pour les fichiers JSON, vous pouvez fournir l'un des éléments suivants:

      • Encodage:ce champ accepte les noms d'encodage de chaîne, tels que UTF-8, US-ASCII ou ISO-8859-1. Si rien n'est spécifié, UTF-8 est utilisé par défaut.

      • Désactiver l'inférence de type de données:ce champ accepte une valeur booléenne. Par défaut, il est défini sur false. Pour les données JSON, si vous désactivez l'inférence de type, toutes les colonnes sont enregistrées en tant que types primitifs (chaîne, nombre ou booléen).

Publier les métadonnées

Lorsque vous créez une zone de données dans votre lac Dataplex, Dataplex crée un ensemble de données BigQuery dans le projet contenant le lac. Dataplex publie des tables dans cet ensemble de données pour les tables découvertes dans les buckets Cloud Storage ajoutés en tant qu'éléments à la zone de données. L'ensemble de données est appelé ensemble de données de publication de métadonnées correspondant à la zone.

Chaque zone de données Dataplex est mappée à un ensemble de données dans BigQuery ou à une base de données dans Dataproc Metastore, où les informations sur les métadonnées sont automatiquement disponibles.

Vous pouvez modifier les métadonnées découvertes automatiquement, telles que le nom ou le schéma d'une table, à l'aide de l'API Dataplex Metadata.

Afficher les tables et les ensembles de fichiers découverts

Vous pouvez rechercher les tables et les ensembles de fichiers détectés dans la vue Rechercher Dataplex de la console Google Cloud.

Ouvrir la recherche

Pour obtenir des résultats de recherche plus précis, utilisez des filtres spécifiques à Dataplex, tels que les noms des lacs et des zones de données. Les 50 premiers éléments par attribut sont affichés dans la liste des filtres. Vous pouvez trouver d'autres éléments à l'aide du champ de recherche.

Chaque entrée contient des métadonnées techniques et opérationnelles détaillées.

Sur la page des détails de l'entrée, vous pouvez interroger la table dans BigQuery et afficher les détails d'enregistrement Dataproc Metastore correspondants.

Si une table Cloud Storage peut être publiée dans BigQuery en tant que table externe, la vue détaillée de l'entrée affiche les éléments suivants:

  • Références de table externe BigQuery
  • Un bouton permettant d'ouvrir dans BigQuery pour commencer à analyser les données dans BigQuery

Les entrées de métadonnées Dataplex sont directement visibles et incluses dans l'index de recherche de Data Catalog. Pour en savoir plus, consultez la documentation de référence sur la recherche dans Data Catalog.

Vous pouvez consulter toutes les entrées détectées via l'API de métadonnées Dataplex.

Actions de découverte

La découverte déclenche les actions d'administrateur suivantes chaque fois que des problèmes liés aux données sont détectés au cours des analyses.

Format de données non valide

Ceci inclut les actions suivantes :

  • Format de données incohérent dans un tableau. Par exemple, des fichiers de formats différents existent avec le même préfixe de table.

  • Format de données non valide dans les zones sélectionnées (données qui ne sont pas aux formats Avro, Parquet ou ORC).

Schéma incompatible

Ceci inclut les actions suivantes :

  • Un schéma détecté par Discovery est incompatible avec le schéma de table actif dans l'API Metadata du Dataproc Metastore. Les schémas A et B ne sont pas compatibles si:

    • A et B partagent des champs portant le même nom, mais avec des types de données différents et incompatibles. Par exemple, chaîne et entier.

    • Les champs A et B ne se chevauchent pas.

    • A et B comportent au moins un champ non nullable, introuvable dans l'autre schéma.

  • Le schéma dérive par rapport à un schéma géré par l'utilisateur dans la zone de données organisées.

Définition de partition non valide

Ceci inclut les actions suivantes :

  • Nom des partitions incohérent. Par exemple, gs://sales_data/year=2020/month=10/day=01 et gs://sales_data/year=2020/region=us.

  • Nom des partitions de style "Non-Hive" dans la zone de données organisées. Par exemple, gs://sales_data/2020/10/01 au lieu de gs://sales_data/year=2020/month=10/day=01.

Données manquantes

Ceci inclut les actions suivantes :

  • Dans la zone de données organisées, les données sous-jacentes d'une table ou d'un ensemble de fichiers enregistrés n'existent plus. En d'autres termes, une table ou un ensemble de fichiers de zones de données organisées a été découvert et enregistré, mais ses données sous-jacentes ont ensuite été supprimées. Vous pouvez résoudre ce problème en réapprovisionnant les données ou en supprimant l'entrée de métadonnées.

Résoudre les actions de découverte

Les données comportant des actions sont vérifiées lors des analyses Discovery ultérieures. Lorsque le problème qui déclenche l'action est résolu, celle-ci est automatiquement résolue lors de la prochaine analyse Discovery planifiée.

Autres actions

En plus des actions de découverte précédentes, il existe trois autres types d'actions liées à l'état des ressources et à la propagation des règles de sécurité dans Dataplex.

  • Ressource manquante: le bucket ou l'ensemble de données sous-jacent ne correspond pas à un élément existant.

  • Ressource non autorisée: Dataplex ne dispose pas des autorisations nécessaires pour effectuer une découverte ou appliquer des règles de sécurité au bucket ou à l'ensemble de données géré par Dataplex.

  • Problèmes liés à la propagation des stratégies de sécurité: les stratégies de sécurité spécifiées pour un lac, une zone ou un élément donné n'ont pas pu être propagées vers les buckets ou les ensembles de données sous-jacents. Bien que toutes les autres actions soient appliquées au niveau de l'élément, ce type d'action peut être appliqué au niveau du lac, de la zone et de l'élément.

Ces types d'actions sont résolus automatiquement lorsque les problèmes de ressources ou de configuration de la sécurité sous-jacents sont corrigés.

Questions fréquentes

Que dois-je faire si le schéma inféré par Discovery est incorrect ?

Si le schéma inféré est différent de celui attendu pour une table donnée, vous pouvez remplacer le schéma inféré en mettant à jour les métadonnées à l'aide de l'API Metadata. Veillez à définir userManaged sur true afin que votre modification ne soit pas écrasée lors des analyses Discovery ultérieures.

Comment exclure des fichiers d'une analyse de découverte ?

Par défaut, la découverte exclut certains types de fichiers de l'analyse, y compris:

  • _SUCCESS
  • _started
  • _committed
  • _metadata, _METADATA et _Metadata
  • _common_metadata, _COMMON_METADATA
  • Fichiers commençant par README ou readme
  • Les répertoires commençant par base_, delta_, delete_delta_, bucket_ et suivi d'un nombre
  • Répertoires commençant par .

Vous pouvez spécifier des modèles d'inclusion ou d'exclusion supplémentaires à l'aide de la configuration de découverte au niveau de la zone ou de l'élément, ou à l'aide de l'API Metadata.

Que dois-je faire si le regroupement de tables détecté par Discovery est trop précis ?

Si les tables détectées par Discovery sont à un niveau plus précis que le chemin racine de la table (par exemple, chaque partition individuelle est enregistrée en tant que table), il peut y avoir plusieurs raisons:

  • Le chemin d'accès racine attendu pour la table présente des différences de format, telles qu'une combinaison de fichiers Avro et Parquet, qui divisent la table en regroupements plus petits.

  • Il existe différents types d'incompatibilités de schéma dans le chemin d'accès racine attendu de la table, qui divisent la table en groupes plus petits.

Vous pouvez résoudre ce problème de l'une des manières suivantes:

  • Corrigez les différences de format ou de schéma afin que tous les fichiers du même chemin racine de table aient un format cohérent et un schéma compatible.

  • Excluez les fichiers hétérogènes en utilisant la configuration du modèle d'exclusion dans le cadre de la configuration de zone / élément ou de l'API de métadonnées.

Une fois que vous avez suivi l'une des mesures correctives, voici ce qui se produit lors de l'analyse de découverte suivante:

  • Les tables de niveau inférieur existantes sont automatiquement supprimées de l'API de métadonnées Dataplex, de BigQuery, de Dataproc Metastore et de Data Catalog.
  • Une table de niveau supérieur avec le chemin d'accès racine attendu est créée à la place.

Comment spécifier des noms de tables ?

Vous pouvez spécifier des noms de tables à l'aide de l'API Metadata.

Que se passe-t-il si je crée des tables manuellement dans Dataproc Metastore ou BigQuery ?

Lorsque la découverte est activée pour un élément donné, vous n'avez pas besoin d'enregistrer manuellement les entrées dans Dataproc Metastore ou BigQuery.

Vous pouvez définir manuellement des définitions de nom de table, de schéma et de partition, tout en désactivant la découverte Dataplex. Vous pouvez également procéder comme suit:

  1. Créez une table en ne spécifiant que les informations requises, telles que le chemin d'accès racine de la table.
  2. Utilisez la découverte de Dataplex pour renseigner le reste des métadonnées, telles que les définitions de schéma et de partition.
  3. Maintenez les métadonnées à jour.

Que faire si ma table n'apparaît pas dans BigQuery ?

Bien que les métadonnées Dataplex soient toutes enregistrées de manière centralisée dans l'API Metadata, seules les tables Cloud Storage compatibles avec BigQuery sont publiées dans BigQuery en tant que tables externes. Dans les détails des entrées de table dans l'API Metadata, vous trouverez un repère de compatibilité BigQuery qui indique les entités publiées dans BigQuery et pourquoi.

Étape suivante