Découvrir des données

Ce guide explique comment activer et utiliser Dataplex Discovery. Discovery 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 composant Dataplex pour lequel la découverte est activée, Dataplex procède comme suit:

  • Analyse les données associées à l'asset.
  • Regroupe les fichiers structurés et semi-structurés dans des tableaux.
  • 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 même type de média en tant que fichiers. Par exemple, si gs://images/group1 contient des images GIF et gs://images/group2 des images JPEG, Dataplex Discovery détecte et enregistre deux 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 et le même schéma de données.

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 sous la forme de tables de style Hive et dans BigQuery sous la forme de tables externes, de sorte que les données soient automatiquement disponibles pour l'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 les formats suivants:

    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
  • 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 Discovery 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 remplacer les paramètres de découverte au niveau de l'élément.

Voici les options de configuration de la découverte disponibles au niveau de la zone et de l'élément:

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

  • Calendrier de découverte: cette option peut être définie sur un calendrier prédéfini (par exemple, toutes les heures ou tous les jours) ou sur un calendrier personnalisé défini au format cron. Les nouveaux composants sont analysés lorsqu'ils sont ajoutés. Pour en savoir plus, consultez la section Configurer des planifications Cron. Recommandation: Planifiez la diffusion de vos campagnes 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 à l'aide de 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 permettent de fournir des informations supplémentaires sur les données semi-structurées, telles que CSV et JSON, afin d'améliorer la précision des résultats Discovery.

    • Pour les fichiers CSV, vous pouvez fournir l'une des options suivantes:

      • Délimiteur: ce champ accepte 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 ce champ n'est pas spécifié, Discovery utilise une virgule comme séparateur.

      • Nombre de lignes d'en-tête:ce champ accepte la valeur 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 colonnes de l'en-tête et réinitialise la valeur sur 1.

      • Encoding (Encodage) : ce champ accepte des noms d'encodage de chaîne, tels que UTF-8, US-ASCII ou ISO-8859-1. Si aucun de ces éléments 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 par défaut 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:

      • Encoding (Encodage) : ce champ accepte des 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 par défaut 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 des 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 à 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 disponibles.

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

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

Vous pouvez rechercher des tables et des fichiers de fichiers découverts dans la vue Recherche de Dataplex dans 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 de lacs et de zones de données. Les 50 premiers éléments par facette s'affichent 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 d'informations sur l'entrée, vous pouvez interroger la table dans BigQuery et afficher les informations d'enregistrement Dataproc Metastore correspondantes.

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'informations sur l'entrée:

  • Références de tables externes BigQuery
  • 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 recherchables 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écouvertes peuvent être consulté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 lors des analyses.

Format de données non valide

Voici quelques-unes des actions possibles:

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

  • Format de données non valide dans les zones sélectionnées (données non au format Avro, Parquet ou ORC).

Schéma incompatible

Voici quelques-unes des actions possibles:

  • Un schéma détecté par Discovery est incompatible avec le schéma de table actif dans l'API de métadonnées de Dataproc Metastore. Les schémas A et B sont incompatibles dans les scénarios suivants:

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

    • Les champs de A et B ne se chevauchent pas.

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

  • Écart de schéma par rapport à un schéma géré par l'utilisateur dans la zone organisée.

Définition de partition non valide

Voici quelques-unes des actions possibles:

  • Noms de partition incohérents. Par exemple, gs://sales_data/year=2020/month=10/day=01 et gs://sales_data/year=2020/region=us.

  • Nom de partition 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

Voici quelques-unes des actions possibles:

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

Résoudre les actions de découverte

Les données associées à des actions sont vérifiées par les analyses de découverte ultérieures. Lorsque le problème déclenchant l'action est résolu, l'action est automatiquement résolue par la prochaine analyse de découverte planifiée.

Autres actions Discovery

En plus des actions de découverte précédentes, trois autres types d'actions sont liés à 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 correspondant à un élément existant est introuvable.

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

  • Problèmes de propagation des règles 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 propagées aux buckets ou aux ensembles de données sous-jacents. Alors que toutes les autres actions sont au niveau de l'élément, ce type d'action peut être défini 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 configuration de la ressource ou de 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 le remplacer en mettant à jour les métadonnées à l'aide de l'API des métadonnées. Veillez à définir userManaged sur true afin que votre modification ne soit pas écrasée lors des analyses de découverte ultérieures.

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

Par défaut, Discovery exclut certains types de fichiers de l'analyse, y compris les suivants:

  • _SUCCESS
  • _started
  • _committed
  • _metadata, _METADATA, _Metadata
  • _common_metadata, _COMMON_METADATA
  • Fichiers commençant par README ou readme
  • Répertoires commençant par base_, delta_, delete_delta_ ou bucket_, suivis d'un chiffre
  • 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 de métadonnées.

Que 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 d'accès racine de la table (par exemple, chaque partition individuelle est enregistrée en tant que table), cela peut s'expliquer de plusieurs façons:

  • Il existe des différences de format, comme un mélange de fichiers Avro et Parquet, dans le chemin d'accès racine de la table attendu, qui divise la table en petits groupes.

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

Pour résoudre ce problème, vous pouvez procéder de deux manières:

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

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

Une fois que vous avez effectué l'une des mesures correctives, lors de la prochaine analyse de découverte, les événements suivants se produisent:

  • 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 de la table attendu est créée à la place.

Comment spécifier des noms de table ?

Vous pouvez spécifier des noms de table à 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é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 le nom de la table, le schéma et les définitions de partition, tout en désactivant Dataplex Discovery. Vous pouvez également procéder comme suit:

  1. Créez une table en spécifiant uniquement 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 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 de métadonnées, seules les tables Cloud Storage compatibles avec BigQuery sont publiées dans BigQuery en tant que tables externes. Dans les détails de l'entrée de table de l'API de métadonnées, vous trouverez un indicateur de compatibilité BigQuery qui indique quelles entités sont publiées dans BigQuery et pourquoi.

Limites

  • Les tables externes, y compris les tables externes BigLake, ne sont pas compatibles avec Discovery. Toutefois, les tables externes sont automatiquement ingérées dans le catalogue Dataplex. Vous pouvez les rechercher dans le catalogue Dataplex à la place.

Étape suivante