Découvrir et cataloguer les données Cloud Storage
Ce document explique comment utiliser la découverte automatique des données Cloud Storage.
La découverte automatique Dataplex est une fonctionnalité de BigQuery qui vous permet d'analyser les données dans des buckets Cloud Storage pour extraire et ensuite cataloguer les métadonnées. Lors de l'analyse, la découverte automatique crée des tables BigLake ou externes pour les données structurées et des tables d'objets pour les données non structurées, que vous pouvez ensuite utiliser pour l'analyse et l'IA. Les tables sont automatiquement cataloguées dans Dataplex Catalog, que vous pouvez rechercher ou parcourir.
Pour utiliser la découverte automatique des données Cloud Storage, vous devez créer et exécuter une analyse de découverte.
Présentation
Une analyse de découverte effectue les opérations suivantes:
- Analyse les données du bucket ou du chemin d'accès Cloud Storage.
- Regroupe les fichiers structurés et semi-structurés dans des tableaux.
- Collecte les métadonnées, telles que le nom de la table, le schéma et la définition de la partition.
- Crée et met à jour des tables BigLake, externes ou d'objets dans BigQuery à l'aide du schéma et de la définition de partition.
Pour les données non structurées, telles que les images et les vidéos, l'analyse de découverte détecte et enregistre des groupes de fichiers qui partagent le même type de support que les tables d'objets BigLake. Par exemple, si gs://images/group1
contient des images GIF et gs://images/group2
des images JPEG, l'analyse de découverte détecte et enregistre deux ensembles de fichiers.
Pour les données structurées, telles qu'Avro, l'analyse de découverte enregistre des groupes de fichiers en tant que tables externes BigLake et 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 compatible.
L'analyse de découverte est compatible avec les formats de données structurées et semi-structurées suivants:
- Parquet
- Avro
- ORC
- JSON (uniquement le format délimité par un retour à la ligne)
- CSV (mais pas les fichiers CSV contenant des lignes de commentaires)
L'analyse de découverte est compatible avec les formats de compression suivants 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
Les tables détectées sont enregistrées dans BigQuery en tant que tables externes BigLake, tables d'objets BigLake ou tables externes. Les données sont ainsi disponibles pour l'analyse dans BigQuery. La mise en cache des métadonnées pour les tables BigLake et les tables d'objets est également activée. Toutes les tables BigLake sont automatiquement ingérées dans le catalogue Dataplex pour la recherche et la découverte.
Avant de commencer
Assurez-vous de disposer des autorisations IAM (Identity and Access Management) nécessaires pour effectuer les tâches décrites dans ce document.
Rôles requis pour le compte de service
Avant de commencer, attribuez les autorisations IAM au compte de service Dataplex de votre projet:
service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com
Remplacez PROJECT_NUMBER
par le projet dans lequel l'API Dataplex est activée.
Pour vous assurer que le compte de service Dataplex dispose des autorisations nécessaires pour exécuter une analyse de découverte, demandez à votre administrateur d'accorder au compte de service Dataplex les rôles IAM suivants:
-
Utilisateur BigQuery (
roles/bigquery.user
) sur le projet de source de données -
Lecteur des objets Storage (
roles/storage.objectViewer
) sur le bucket de la source de données -
Fournir une connexion :
Administrateur de connexion BigQuery (
roles/bigquery.connectionAdmin
)
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Ces rôles prédéfinis contiennent les autorisations requises pour exécuter une analyse de découverte. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour exécuter une analyse de découverte:
-
bigquery.datasets.create
sur le projet de source de données -
storage.buckets.get
sur le bucket de la source de données -
storage.objects.get
sur le bucket de la source de données -
storage.objects.list
sur le bucket de la source de données -
bigquery.datasets.get
sur le projet de source de données -
Fournissez une connexion :
-
bigquery.connections.delegate
-
bigquery.connections.use
-
Votre administrateur peut également attribuer au compte de service Dataplex ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Rôles requis pour les utilisateurs finaux
Pour vous assurer que vous disposez des autorisations nécessaires pour utiliser l'API DataScan, demandez à votre administrateur de vous accorder les rôles IAM suivants:
-
Accès complet aux ressources DataScan :
Administrateur Dataplex DataScan (
roles/dataplex.dataScanAdmin
) sur votre projet -
Accès en écriture aux ressources DataScan :
Éditeur Dataplex DataScan (
roles/dataplex.dataScanEditor
) sur votre projet -
Accès en lecture aux ressources DataScan, à l'exception des résultats :
Lecteur Dataplex DataScan (
roles/dataplex.dataScanViewer
) sur votre projet -
Accès en lecture aux ressources DataScan, y compris aux résultats :
Lecteur de données Dataplex DataScan (
roles/dataplex.dataScanDataViewer
) sur votre projet
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Ces rôles prédéfinis contiennent les autorisations requises pour utiliser l'API DataScan. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Vous devez disposer des autorisations suivantes pour utiliser l'API DataScan:
-
Créez une analyse DataScan :
dataplex.datascans.create
dans votre projet -
Supprimer une analyse de données :
dataplex.datascans.delete
sur votre projet ou une ressource d'analyse de données -
Afficher les détails de DataScan en excluant les résultats :
dataplex.datascans.get
sur votre projecteur une ressource DataScan -
Afficher les détails de DataScan, y compris les résultats :
dataplex.datascans.getData
dans votre projet ou dans une ressource DataScan -
Lister les analyses de données :
dataplex.datascans.list
sur votre projet ou une ressource d'analyse de données -
Exécuter une analyse de données :
dataplex.datascans.run
sur votre projet ou une ressource DataScan -
Modifier la description d'une analyse de données :
dataplex.datascans.update
sur votre projecteur, une ressource d'analyse de données -
Afficher les autorisations IAM de DataScan :
dataplex.datascans.getIamPolicy
sur votre projet ou une ressource DataScan -
Définissez les autorisations IAM sur DataScan :
dataplex.datascans.setIamPolicy
sur votre projet ou une ressource DataScan
Votre administrateur peut également vous attribuer ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Créer une analyse de découverte
Pour découvrir des données, vous devez créer et exécuter une analyse de découverte. Vous pouvez définir un calendrier pour l'analyse ou l'exécuter à la demande. Pour créer et exécuter une analyse de découverte, vous devez disposer de l'autorisation dataplex.datascans.create
.
Lorsque l'analyse de découverte s'exécute, elle crée un ensemble de données dans BigQuery qui correspond au bucket Cloud Storage analysé. Le nom de l'ensemble de données BigQuery est identique à celui du bucket Cloud Storage. Les caractères non valides dans le nom du bucket sont remplacés par un trait de soulignement. Si le nom de l'ensemble de données n'est pas disponible, un postfixe est ajouté (par exemple, _discovered_001
). L'ensemble de données contient les tables externes BigLake ou non BigLake créées par l'analyse de découverte pour une analyse plus approfondie.
Console
Dans la console Google Cloud, accédez à la page BigQuery.
Dans Explorer, cliquez sur
Ajouter.Dans le volet Ajouter de la section Sources populaires, cliquez sur Créer automatiquement des tables externes et BigLake à partir de GCS.
Dans le volet Créer une table, dans la section Source, configurez les détails suivants sur les données à analyser:
- Attribuez un nom à l'analyse.
- Dans le champ ID de numérisation, saisissez un ID unique qui respecte la convention d'attribution de nom des ressources. Si vous ne fournissez pas d'ID, l'analyse de découverte génère l'ID d'analyse.
- Facultatif: fournissez une description de l'analyse.
- Pour spécifier le bucket Cloud Storage contenant les fichiers à analyser, accédez au bucket dans le champ Bucket (Bucket), puis sélectionnez-le.
Facultatif: définissez les données à inclure ou à exclure de l'analyse de découverte en fournissant une liste de modèles glob.
- Inclure: si seul un sous-ensemble des données doit être analysé, fournissez une liste de modèles globaux correspondant aux objets à inclure.
- Exclure: fournit une liste de formats glob correspondant aux objets à exclure.
Par exemple, si vous souhaitez exclure
gs://test_bucket/foo/..
de l'analyse de découverte, saisissez**/foo/*
comme chemin d'exclusion. Les guillemets provoquent des erreurs. Veillez à saisir**/foo/*
au lieu de"**/foo/*"
.Si vous fournissez à la fois des modèles d'inclusion et d'exclusion, les modèles d'exclusion sont appliqués en premier.
Pour créer des tables BigLake à partir des données numérisées, indiquez votre ID de connexion à la ressource Google Cloud dans le champ ID de connexion. Pour en savoir plus, consultez la section Connexions de ressources Google Cloud.
Si vous ne fournissez pas d'ID de connexion de ressource, l'analyse de découverte crée des tables externes autres que BigLake.
Dans la section Fréquence de découverte, configurez la fréquence d'exécution de l'analyse de découverte:
Répéter: l'analyse s'exécute selon un calendrier prédéfini. Indiquez l'heure de début, les jours d'exécution de l'analyse et la fréquence, par exemple toutes les heures.
À la demande: l'analyse s'exécute à la demande.
Facultatif: dans la section Spécifications JSON ou CSV, indiquez comment l'analyse doit traiter les fichiers JSON et CSV. Cliquez sur Spécifications JSON ou CSV.
- Pour configurer les options JSON, sélectionnez Activer les options d'analyse JSON.
- Désactiver l'inférence de type: indique si l'analyse de découverte doit inférer les types de données lors de l'analyse des données. Si vous désactivez l'inférence de type pour les données JSON, toutes les colonnes sont enregistrées en tant que types primitifs, tels que chaîne, nombre ou booléen.
- Format d'encodage: l'encodage des caractères des données, par exemple UTF-8, US-ASCII ou ISO-8859-1. Si vous ne spécifiez pas de valeur, UTF-8 est utilisé par défaut.
- Pour configurer les options CSV, cochez Activer les options d'analyse CSV.
- Désactiver l'inférence de type: indique si l'analyse de découverte doit inférer les types de données lors de l'analyse des données. Si vous désactivez l'inférence de type pour les données CSV, toutes les colonnes sont enregistrées en tant que chaînes.
- Lignes d'en-tête: nombre de lignes d'en-tête, soit
0
, soit1
. Si vous spécifiez la valeur0
, l'analyse de découverte infère les titres et extrait les noms de colonnes du fichier. La valeur par défaut est0
. - Caractère délimiteur de colonne: caractère utilisé pour séparer les valeurs. Indiquez un seul caractère,
\r
(retour chariot) ou\n
(saut de ligne). La valeur par défaut est une virgule (,
). - Format d'encodage: encodage de caractères des données, par exemple
UTF-8
,US-ASCII
ouISO-8859-1
. Si vous ne spécifiez pas de valeur, UTF-8 est utilisé par défaut.
- Pour configurer les options JSON, sélectionnez Activer les options d'analyse JSON.
Une fois la configuration de l'analyse de découverte des données terminée, cliquez sur Créer (pour une analyse planifiée) ou sur Exécuter maintenant (pour une analyse à la demande).
Une analyse planifiée est exécutée selon la planification que vous avez définie.
Une analyse à la demande est exécutée une fois au départ lorsque vous la créez. Vous pouvez l'exécuter à tout moment. L'exécution de l'analyse peut prendre plusieurs minutes.
REST
Pour créer une analyse de découverte, utilisez la méthode dataScans.create
.
Surveiller une analyse de découverte
Pour surveiller les résultats d'une analyse de découverte, vous pouvez interroger les journaux créés lors de l'exécution d'une analyse.
Console
Dans la console Google Cloud, accédez à la page Explorateur de journaux.
Dans la vue Explorateur de journaux, recherchez l'onglet Requête.
Cliquez sur le menu Ressource.
Sélectionnez Cloud Dataplex DataScan. Cliquez sur Apply (Appliquer).
Cliquez sur le menu Nom du journal.
Dans le champ Search log names (Rechercher des noms de journaux), saisissez
dataplex.googleapis.com%2Fdata_scan
. Sélectionnez data_scan, puis cliquez sur Appliquer.Facultatif: filtrez les journaux sur un ID ou un emplacement d'analyse de données spécifique en ajoutant les filtres suivants dans la requête de journal:
resource.type="dataplex.googleapis.com/DataScan" AND resource.labels.resource_container="projects/PROJECT_ID" AND resource.labels.datascan_id="DATA_SCAN_ID"
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projet Google CloudDATA_SCAN_ID
: ID de DataScan
Cliquez sur Exécuter la requête.
REST
Pour surveiller une analyse de découverte, utilisez la méthode dataScans.get
.
Interroger des tables BigLake publiées
Une fois l'analyse de découverte exécutée, les tables BigLake sont publiées dans un nouvel ensemble de données dans BigQuery et sont disponibles pour l'analyse dans BigQuery à l'aide de SQL, ou dans Dataproc à l'aide d'Apache Spark ou de Dataproc ou HiveQL.
Interroger à l'aide de SQL
Vous pouvez afficher ou interroger des tables dans BigQuery. Pour en savoir plus sur l'exécution de requêtes dans BigQuery, consultez la page Exécuter une requête.
Requête utilisant Apache Spark
Pour interroger des tables BigLake à l'aide de Spark SQL dans une tâche sans serveur Dataproc, procédez comme suit:
Créez un script PySpark semblable à l'exemple suivant:
from pyspark.sql import SparkSession session = ( SparkSession.builder.appName("testing") .config("viewsEnabled","true") .config("materializationDataset", "DATASET_ID") .config("spark.hive.metastore.bigquery.project.id", "PROJECT_ID") .config("spark.hive.metastore.client.factory.class", "com.google.cloud.bigquery.metastore.client.BigQueryMetastoreClientFactory") .enableHiveSupport() .getOrCreate() ) session.sql("show databases").show() session.sql("use TABLE_NAME").show() session.sql("show tables").show() sql = "SELECT * FROM DATASET_ID.TABLE_ID LIMIT 10" df = session.read.format("bigquery").option("dataset", "DATASET_ID").load(sql) df.show()
Remplacez les éléments suivants :
DATASET_ID
: ID de l'ensemble de données pour lequel les utilisateurs sont autorisés à créerPROJECT_ID
: ID du projet avec la table BigLakeTABLE_NAME
: nom de la table BigLakeTABLE_ID
: ID de la table BigLake
Gérer les tables BigLake publiées
Les tables BigLake publiées sont créées dans BigQuery par l'analyse de découverte. Sauf si le libellé metadata-managed-mode est défini sur user_managed
, l'analyse de découverte gère les tables BigLake publiées. L'analyse de découverte gère la découverte de nouvelles données, les inférences de schéma et l'évolution du schéma chaque fois que les analyses de données planifiées ou à la demande sont exécutées.
Mettre à jour des tables BigLake publiées
Pour les tables BigLake publiées à l'aide des tâches d'analyse de découverte avec la configuration par défaut, le schéma et d'autres métadonnées sont automatiquement mis à jour à chaque exécution de la tâche d'analyse des données à la fréquence planifiée.
Pour mettre à jour une table BigLake publiée, procédez comme suit:
Dans la console Google Cloud, accédez à la page BigQuery.
Dans le volet Explorer, développez votre projet et votre ensemble de données, puis sélectionnez la table.
Dans le volet Détails, dans la section Libellés, assurez-vous que metadata-managed-mode est défini sur
user_managed
. Si elle est définie sur une autre valeur, procédez comme suit:Cliquez sur
Modifier les infos.À côté de la clé metadata-managed-mode, dans le champ value, saisissez
user_managed
.
Une table avec un schéma mis à jour devient disponible pour les requêtes SQL et Spark. Lorsque les prochaines analyses de découverte sont exécutées, les métadonnées de la table restent inchangées.
Supprimer des tables BigLake publiées
Pour supprimer une table BigLake publiée, procédez comme suit:
Supprimez les fichiers de données de la table dans le bucket Cloud Storage.
Dans la console Google Cloud, accédez à la page BigQuery.
Dans le volet Explorer, développez votre projet et votre ensemble de données, puis sélectionnez la table.
Dans le volet Details (Détails), dans la section Labels (Libellés), vérifiez que le libellé metadata-managed-mode n'est pas défini sur
user_managed
. Si elle est définie suruser_managed
, procédez comme suit:Cliquez sur Modifier les détails
.À côté de la clé metadata-managed-mode, dans le champ value, saisissez une valeur autre que
user_managed
.
Cliquez sur Exécuter. L'analyse de découverte s'exécute à la demande.
Une fois l'analyse de découverte exécutée, la table BigLake est supprimée dans BigQuery et ne peut plus être listée ni interrogée via Spark.
Exécuter une analyse de découverte à la demande
Pour exécuter une analyse de découverte à la demande, utilisez la méthode dataScans.run
dans l'API Dataplex.
Lister les analyses de découverte
Pour récupérer la liste des analyses de votre projet, utilisez la méthode dataScans.list
dans l'API Dataplex.
Mettre à jour une analyse de découverte
Pour modifier la planification d'une analyse, par exemple en passant d'une analyse à la demande à une analyse récurrente, vous devez mettre à jour DataScan.
Pour mettre à jour une analyse de découverte, utilisez la méthode dataScans.patch
dans l'API Dataplex.
Supprimer une analyse de découverte
Pour supprimer une analyse de découverte, utilisez la méthode dataScans.delete
dans l'API Dataplex.