Découvrir des données

Ce guide explique comment activer et utiliser la découverte Dataplex. Discovery analyse et extrait les métadonnées des données d'un lac de données et 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 sur lequel la détection 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 des 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 partageant le type de contenu multimédia en tant qu'ensembles de fichiers. Par exemple, si gs://images/group1 contient des images GIF et gs://images/group2 contient des images JPEG, Dataplex Discovery détecte et enregistre deux ensembles de fichiers. Pour les données structurées, telles que 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étectés sont enregistrés dans Data Catalog pour la recherche et la découverte. Les tables apparaissent dans Dataproc Metastore en tant que tables de type Hive et dans BigQuery en tant que tables externes, de sorte que les données sont automatiquement disponibles pour analyse.

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

Discovery accepte le format de compression suivant 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 (ORC), États-Unis
  • 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 découverte disponibles au niveau des zones et des éléments:

  • Visibilité activée et désactivée

  • Planification de la découverte: cette option peut être définie sur un calendrier prédéfini, par exemple toutes les heures ou tous les jours, ou une planification personnalisée définie par un format Cron. Les nouveaux assets sont analysés lorsqu'ils sont ajoutés. Pour en savoir plus, consultez la section Configurer des planifications Cron. Recommandation: planifiez Discovery pour qu'il s'exécute toutes les heures au maximum.

  • Inclure ou exclure le modèle: 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écouverte, 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 des modèles d'inclusion et d'exclusion existent en même temps, les modèles 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 découverte.

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

      • Délimiteur: ce champ accepte un 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 ce champ n'est pas fourni, 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 des colonnes de l'en-tête et réinitialise la valeur à 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. Il est défini sur false par défaut. 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. Il est défini sur false par défaut. 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 dans cet ensemble de données des tables pour les tables détectées dans les buckets Cloud Storage ajoutés à la zone de données en tant qu'éléments. 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 de métadonnées sont automatiquement mises à disposition.

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

Afficher les tables et les ensembles de fichiers détectés

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

Ouvrez la recherche

Pour 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, vous pouvez voir ce qui suit dans la vue détaillée de l'entrée:

  • Références des tables BigQuery externes
  • Un bouton 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 dans Data Catalog. Pour en savoir plus, consultez la documentation de référence sur la recherche dans Data Catalog.

Toutes les entrées détectées peuvent être consultées via l'API Dataplex Metadata.

Actions de découverte

La détection déclenche les actions d'administrateur suivantes chaque fois que des problèmes liés aux données sont détectés pendant les 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 au format Avro, Parquet ou ORC).

Schéma incompatible

Ceci inclut les actions suivantes :

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

    • Les champs 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.

  • Dérive de schéma par rapport à un schéma géré par l'utilisateur dans la zone sélectionnée.

Définition de partition non valide

Ceci inclut les actions suivantes :

  • Nom de partition incohérent. Exemples : gs://sales_data/year=2020/month=10/day=01 et gs://sales_data/year=2020/region=us.

  • Nom de partition autre que Hive dans la zone de données sélectionnée. 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 sélectionnée, 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 de zone sélectionnée ou un ensemble de fichiers 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 reconstituant 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 par des analyses de découverte ultérieures. Une fois que le problème déclenchant l'action est résolu, celle-ci est automatiquement résolue par 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 stratégies de sécurité dans Dataplex.

  • Ressource manquante: le bucket ou l'ensemble de données sous-jacent est introuvable en rapport avec un élément existant.

  • Ressource non autorisée: Dataplex ne dispose pas des autorisations suffisantes pour effectuer une détection 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 règles de sécurité spécifiées pour un lac, une zone ou un élément donné n'ont pas pu être correctement propagées vers les buckets ou ensembles de données sous-jacents. Bien que toutes les autres actions aient lieu au niveau de l'élément, ce type d'action peut être déclenché 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 sous-jacentes ou de configuration de la sécurité sont corrigés.

Questions fréquentes

Que dois-je faire si le schéma déduit par Discovery est incorrect ?

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

Comment exclure des fichiers d'une analyse Discovery ?

Par défaut, Discovery 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
  • Répertoires commençant par base_, delta_, delete_delta_, bucket_, suivis d'un numéro
  • Répertoires commençant par .

Vous pouvez spécifier d'autres modèles d'inclusion ou d'exclusion à l'aide de la configuration de découverte au niveau de la zone ou de l'élément, ou à l'aide de l'API de métadonnées.

Que faire si le regroupement des tables détecté par Discovery est trop précis ?

Si les tables détectées par Discovery présentent un niveau plus précis que le chemin d'accès racine de la table (par exemple, chaque partition individuelle est enregistrée en tant que table), plusieurs raisons peuvent expliquer ce problème:

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

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

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

  • Correction des différences de format ou de schéma afin que tous les fichiers du même chemin d'accès racine de table présentent un format cohérent et un schéma compatible.

  • Excluez des 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 étapes correctives, voici ce qui se produit dans l'analyse de découverte suivante:

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

Comment spécifier des noms de tables ?

Vous pouvez spécifier des noms de tables à l'aide de l'API de métadonnées.

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

Lorsque la détection 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 les définitions de nom de table, de schéma et de partition, tout en désactivant la détection 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 Dataplex Discovery 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 dois-je faire si ma table ne s'affiche 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 pouvez trouver un repère de compatibilité BigQuery qui indique quelles entités sont publiées dans BigQuery et pourquoi.

Étape suivante