Découvrir des données

Ce guide explique comment activer et utiliser la découverte Knowledge Catalog (anciennement Dataplex Universal Catalog). La découverte 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 (obsolète) pour l'analyse, la recherche et l'exploration.

Présentation

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

  • Analyse les données associées à l'élément.
  • Regroupe les fichiers structurés et semi-structurés dans des 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, la découverte Knowledge Catalog détecte et enregistre automatiquement les groupes de fichiers partageant le même type de mé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, la découverte Knowledge Catalog détecte et enregistre deux ensembles de fichiers. Pour les données structurées, telles qu'Avro, la découverte 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 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 forme de tables de style Hive et dans BigQuery sous forme de tables externes, de sorte que les données sont automatiquement mises à disposition pour l'analyse.

La découverte est compatible avec les formats de données structurées et semi-structurées suivants :

La découverte est compatible avec 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
  • 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 la désactiver 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écouverte disponibles aux niveaux de la zone et de l'élément :

  • 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 au format cron. Les nouveaux éléments sont analysés lorsqu'ils sont ajoutés. Pour en savoir plus, consultez Configurer les planifications cron. Vous pouvez définir la planification de la découverte entre 60 minutes et 31 jours.

  • 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 entraînent des erreurs. Veillez à saisir **/foo/* au lieu de "**/foo/*".) Cette fonction est uniquement disponible 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 de la 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 aucun délimiteur n'est fourni, la découverte utilise une virgule.

      • 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, la découverte effectue une inférence d'en-tête. Si un en-tête est détecté, la découverte extrait les noms de 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 des métadonnées

Lorsque vous créez une zone de données dans votre lac Knowledge Catalog, Knowledge Catalog crée un ensemble de données BigQuery dans le projet contenant le lac. Knowledge Catalog 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 Knowledge Catalog 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 ou le schéma de la table, à l'aide de l'API Dataplex.

Afficher les tables et ensembles de fichiers découverts

Vous pouvez rechercher les tables et ensembles de fichiers découverts dans la vue Knowledge Catalog Recherche dans la Google Cloud console.

Ouvrir la recherche

Pour obtenir des résultats de recherche plus précis, utilisez des filtres spécifiques à Knowledge Catalog, tels que les noms de lac et de zone 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 de 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 les éléments suivants dans sa vue de détails d'entrée :

  • Références de table externe BigQuery
  • Un bouton Ouvrir dans BigQuery pour commencer à analyser les données dans BigQuery

Les entrées de métadonnées Knowledge Catalog sont directement visibles et interrogeables 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 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

Les actions comprennent les éléments suivants :

Schéma incompatible

Les actions comprennent les éléments suivants :

  • Un schéma détecté par la découverte 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 avec des types de données différents et incompatibles. Par exemple, chaîne et entier.

    • A et B n'ont pas de champs qui se chevauchent.

    • A et B ont au moins un champ non nullable qui n'est pas trouvé dans l'autre schéma.

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

Définition de partition non valide

Les actions comprennent les éléments suivants :

  • Incohérence dans l'attribution de noms aux partitions. Par exemple, gs://sales_data/year=2020/month=10/day=01 et gs://sales_data/year=2020/region=us.

  • Attribution de noms aux 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

Les actions comprennent les éléments suivants :

  • Dans la zone de données organisées, les données sous-jacentes d'une table ou d'un ensemble de fichiers enregistré n'existent plus. En d'autres termes, une table ou un ensemble de fichiers de zone organisée a été découvert et enregistré, mais ses données sous-jacentes ont été supprimées par la suite. 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 avec des actions sont vérifiées par les analyses de découverte suivantes. Lorsque le problème qui déclenche l'action est résolu, l'action est résolue automatiquement par l'analyse de découverte planifiée suivante.

Autres actions de découverte

Outre les 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 Knowledge Catalog.

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

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

  • Problèmes liés à la 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 correctement aux buckets ou ensembles de données sous-jacents. Alors que toutes les autres actions se trouvent 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 configuration de sécurité ou de ressource sous-jacents sont corrigés.

Questions fréquentes

Que faire si le schéma déduit par la découverte est incorrect ?

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

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 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_, bucket_, suivis 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 la 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 la découverte est trop précis ?

Si les tables détectées par la découverte 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), plusieurs raisons peuvent en être la cause :

  • Il existe des différences de format, telles qu'un mélange de fichiers Avro et Parquet, dans le chemin racine de la table attendu, qui divisent la table en regroupements plus petits.

  • Il existe différents types d'incompatibilités de schéma dans le chemin 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 :

  • 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 à l'aide de la configuration du modèle d'exclusion dans le cadre de la configuration de la zone / de l'élément ou de l'API de métadonnées.

Une fois que vous avez effectué l'une des étapes correctives, l'analyse de découverte suivante se déroule comme suit :

  • Les tables de niveau inférieur existantes sont automatiquement supprimées de l'API Dataplex, de BigQuery, de Dataproc Metastore et de Data Catalog.
  • Une nouvelle table de niveau supérieur avec le chemin racine de 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 des 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 la découverte Knowledge Catalog. Vous pouvez également procéder comme suit :

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

Que faire si ma table ne s'affiche pas dans BigQuery ?

Bien que toutes les métadonnées Knowledge Catalog soient 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 marqueur de compatibilité BigQuery qui indique les entités publiées dans BigQuery et pourquoi.

Limites

  • Les tables externes, y compris les tables externes BigLake, ne sont pas compatibles avec la découverte. Toutefois, les tables externes sont automatiquement ingérées dans Knowledge Catalog, et vous pouvez les rechercher dans Knowledge Catalog à la place.

Tarifs

Knowledge Catalog facture la découverte dans le cadre du niveau de traitement standard. Pour en savoir plus, consultez Tarifs du traitement standard de Knowledge Catalog.

Étape suivante