Interrogation de tables configurées à l'aide d'un modèle d'analyse SQL - AWS Clean Rooms

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Interrogation de tables configurées à l'aide d'un modèle d'analyse SQL

Cette procédure explique comment utiliser un modèle d'analyse dans la AWS Clean Rooms console pour interroger des tables configurées à l'aide de la règle d'analyse personnalisée.

Pour utiliser un modèle d'analyse SQL pour interroger les tables configurées à l'aide de la règle d'analyse personnalisée
  1. Connectez-vous à la AWS Clean Rooms console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/cleanrooms.

  2. Dans le volet de navigation de gauche, sélectionnez Collaborations.

  3. Choisissez la collaboration dont le statut de capacité de vos membres est défini sur Exécuter des requêtes.

  4. Dans l'onglet Analyse, sous la section Tables, visualisez les tables et le type de règle d'analyse associé (règle d'analyse personnalisée).

    Note

    Si les tables attendues ne figurent pas dans la liste, c'est peut-être pour les raisons suivantes :

  5. Dans la section Analyse, pour le mode Analyse, sélectionnez Exécuter les modèles d'analyse, puis choisissez le modèle d'analyse dans la liste déroulante.

  6. Les paramètres du modèle d'analyse SQL seront automatiquement renseignés dans la définition.

  7. (Moteur d'analyse Spark uniquement) Spécifiez le type de travailleur pris en charge et le nombre de travailleurs.

    Utilisez le tableau suivant pour déterminer le type et le nombre de travailleurs dont vous avez besoin pour votre cas d'utilisation.

    Type d’employé vCPU Mémoire (Go) Stockage (Go) Nombre d'employés Nombre total d'unités de traitement pour salles blanches (CRPU)
    CR.1X (par défaut) 4 30 100 4 8
    128 256
    CR.4X 16 120 400 4 32
    32 256
    Note

    Les différents types de travailleurs et le nombre de travailleurs entraînent des coûts associés. Pour en savoir plus sur les tarifs, consultez la section AWS Clean Rooms Tarifs.

  8. (Moteur d'analyse Spark uniquement) Spécifiez les propriétés Spark prises en charge.

    1. Sélectionnez Ajouter des propriétés Spark.

    2. Dans la boîte de dialogue des propriétés de Spark, choisissez un nom de propriété dans la liste déroulante et entrez une valeur.

    Le tableau suivant fournit une définition pour chaque propriété.

    Pour plus d'informations sur les propriétés de Spark, consultez la section Propriétés de Spark dans la documentation d'Apache Spark.

    Nom de propriété Description Valeur par défaut

    Défaillances de Spark.Task.Max

    Contrôle le nombre de fois consécutives qu'une tâche peut échouer avant que la tâche échoue. Nécessite une valeur supérieure ou égale à 1. Le nombre de tentatives autorisées est égal à cette valeur moins 1. Le nombre d'échecs est réinitialisé en cas de réussite d'une tentative. Les échecs liés aux différentes tâches ne s'accumulent pas jusqu'à atteindre cette limite.

    4

    fichiers spark.sql. maxPartitionBytes

    Définit le nombre maximum d'octets à regrouper dans une seule partition lors de la lecture à partir de sources basées sur des fichiers telles que Parquet, JSON et ORC.

    128 MO

    Spark.Hadoop.FS.S3.max Réessaie

    Définit le nombre maximal de tentatives pour les opérations sur les fichiers Amazon S3.

    spark.network.timeout

    Définit le délai d'expiration par défaut pour toutes les interactions réseau. Remplace les paramètres de délai d'expiration suivants s'ils ne sont pas configurés :

    • spark.storage. blockManagerHeartbeatTimeoutMs

    • Spark.shuffle.io. Délai de connexion

    • Spark.rpc.AskTimeout

    • Spark.rpc. Délai de recherche expiré

    À définir

    spark.rdd.compress

    Spécifie s'il faut compresser les partitions RDD sérialisées à l'aide de spark.io.compression.codec. S'applique à StorageLevel .MEMORY_ONLY_SER en Java et Scala, ou à .MEMORY_ONLY en Python. StorageLevel Réduit l'espace de stockage mais nécessite un temps de traitement supplémentaire du processeur.

    FALSE

    spark.shuffle.spill.compress

    Spécifie s'il faut compresser les données du shuffle spill à l'aide de spark.io.compression.codec.

    TRUE

    spark.sql.adaptive. advisoryPartitionSizeInBytes

    Définit la taille cible en octets pour les partitions shuffle lors de l'optimisation adaptative lorsque spark.sql.adaptive.enabled est vrai. Contrôle la taille de la partition lors de la fusion de petites partitions ou du fractionnement de partitions asymétriques.

    (valeur de spark.sql.adaptive.shuffle. targetPostShuffleInputSize)

    spark.sql.adaptive. autoBroadcastJoinSeuil

    Définit la taille maximale de la table en octets pour la diffusion vers les nœuds de travail lors des jointures. S'applique uniquement dans le cadre adaptatif. Utilise la même valeur par défaut que spark.sql. autoBroadcastJoinSeuil. Réglez sur -1 pour désactiver la diffusion.

    (aucun)

    spark.sql.adaptive.CoalescePartitions.Activé

    Spécifie s'il faut fusionner les partitions shuffle contiguës sur la base de spark.sql.adaptive. advisoryPartitionSizeInBytes pour optimiser la taille des tâches. Nécessite que spark.sql.adaptive.enabled soit vrai.

    TRUE

    spark.sql.adaptive.CoalescePartitions. initialPartitionNum

    Définit le nombre initial de partitions shuffle avant la fusion. Nécessite que spark.sql.adaptive.enabled et spark.sql.adaptive.CoalescePartitions.enabled soient vrais. La valeur par défaut est spark.sql.shuffle.partitions.

    (aucun)

    spark.sql.adaptive.CoalescePartitions. minPartitionSize

    Définit la taille minimale des partitions shuffle coalescées afin d'éviter que les partitions ne deviennent trop petites lors de l'optimisation adaptative.

    1 Mo

    spark.sql.adaptive.coalescepartitions.ParallelismFirst

    Spécifie s'il faut calculer la taille des partitions en fonction du parallélisme des clusters plutôt que de spark.sql.adaptive. advisoryPartitionSizeInBytes lors de la coalescence de la partition. Génère des tailles de partition inférieures à la taille cible configurée afin de maximiser le parallélisme. Nous vous recommandons de définir ce paramètre sur false sur les clusters occupés afin d'améliorer l'utilisation des ressources en évitant de trop petites tâches.

    TRUE

    spark.sql.adaptive.enabled

    Spécifie s'il faut activer l'exécution adaptative des requêtes afin de réoptimiser les plans de requêtes pendant l'exécution des requêtes, sur la base de statistiques d'exécution précises.

    TRUE

    spark.sql.adaptive. forceOptimizeSkewedJoignez-vous

    Spécifie s'il faut forcer l'activation OptimizeSkewedJoin même si cela introduit un shuffle supplémentaire.

    FALSE

    spark.sql.adaptive. localShuffleReader.activé

    Spécifie s'il faut utiliser des lecteurs de shuffle locaux lorsque le partitionnement aléatoire n'est pas requis, par exemple après la conversion des jointures par tri-fusion en jointures par hachage par diffusion. Nécessite que spark.sql.adaptive.enabled soit vrai.

    TRUE

    spark.sql.adaptive. maxShuffledHashJoinLocalMapThreshold

    Définit la taille de partition maximale en octets pour la création de cartes de hachage locales. Privilégie les jointures par hachage mélangées par rapport aux jointures par tri-fusion lorsque :

    • Cette valeur est égale ou supérieure à spark.sql.adaptive. advisoryPartitionSizeInBytes

    • Toutes les tailles de partition se situent dans cette limite

    Remplace spark.sql.join. preferSortMergeParamètre de jointure.

    0 octets

    spark.sql.adaptive. optimizeSkewsInRebalancePartitions.activé

    Spécifie s'il faut optimiser les partitions shuffle asymétriques en les divisant en partitions plus petites sur la base de spark.sql.adaptive. advisoryPartitionSizeInBytes. Nécessite que spark.sql.adaptive.enabled soit vrai.

    TRUE

    spark.sql.adaptive. rebalancePartitionsSmallPartitionFactor

    Définit le facteur de seuil de taille pour la fusion des partitions lors du fractionnement. Partitions inférieures à ce facteur multipliées par spark.sql.adaptive. advisoryPartitionSizeInBytes sont fusionnés.

    0.2

    spark.sql.adaptive.SkewJoin.Enabled

    Spécifie s'il faut gérer l'inclinaison des données dans les jointures mélangées en divisant et éventuellement en répliquant les partitions asymétriques. S'applique aux jointures par triage et par hachage mélangées. Nécessite que spark.sql.adaptive.enabled soit vrai.

    TRUE

    spark.sql.adaptive.skewJoin. skewedPartitionFactor

    Détermine le facteur de taille qui détermine l'inclinaison de la partition. Une partition est inclinée lorsque sa taille dépasse les deux valeurs suivantes :

    • Ce facteur multiplié par la taille médiane de la partition

    • La valeur de spark.sql.adaptive.SkewJoin. skewedPartitionThresholdInBytes

    5

    spark.sql.adaptive.skewJoin. skewedPartitionThresholdInBytes

    Définit le seuil de taille en octets pour identifier les partitions asymétriques. Une partition est inclinée lorsque sa taille dépasse les deux valeurs suivantes :

    • Ce seuil

    • Taille de partition médiane multipliée par spark.sql.adaptive.skewJoin. skewedPartitionFactor

    Nous recommandons de définir cette valeur à une valeur supérieure à spark.sql.adaptive. advisoryPartitionSizeInBytes.

    256 MO

    spark.sql. autoBroadcastJoinSeuil

    Définit la taille maximale de la table en octets pour la diffusion vers les nœuds de travail lors des jointures. Réglez sur -1 pour désactiver la diffusion.

    10 MO

    Spark.SQL. Délai de diffusion

    Contrôle le délai d'expiration en secondes pour les opérations de diffusion lors des jointures de diffusion.

    300 secondes

    spark.sql.cbo.enabled

    Spécifie s'il faut activer l'optimisation basée sur les coûts (CBO) pour l'estimation des statistiques du plan.

    FALSE

    spark.sql.cbo.joinreorder.dp.star.filter

    Spécifie s'il faut appliquer l'heuristique du filtre de jointure en étoile lors de l'énumération des jointures basée sur les coûts.

    FALSE

    spark.sql.cbo.joinreorder.dp.Threshold

    Définit le nombre maximum de nœuds joints autorisés dans l'algorithme de programmation dynamique.

    12

    spark.sql.cbo.JoinReorder.Enabled

    Spécifie s'il faut activer la réorganisation des jointures dans le cadre de l'optimisation basée sur les coûts (CBO).

    FALSE

    spark.sql.cbo.planstats.activé

    Spécifie s'il faut extraire le nombre de lignes et les statistiques des colonnes du catalogue lors de la génération du plan logique.

    FALSE

    spark.sql.cbo. starSchemaDetection

    Spécifie s'il faut activer la réorganisation des jointures en fonction de la détection du schéma en étoile.

    FALSE

    Spark.SQL.CrossJoin.Activé

    fichiers spark.sql. maxPartitionNum

    Définit le nombre maximal cible de partitions de fichiers fractionnées pour les sources basées sur des fichiers (Parquet, JSON et ORC). Redimensionne les partitions lorsque le nombre initial dépasse cette valeur. Il s'agit d'une cible suggérée et non d'une limite garantie.

    (aucun)

    fichiers spark.sql. maxRecordsPerDossier

    Définit le nombre maximum d'enregistrements à écrire dans un seul fichier. Aucune limite ne s'applique lorsqu'il est réglé sur zéro ou sur une valeur négative.

    0

    fichiers spark.sql. minPartitionNum

    Définit le nombre minimum cible de partitions de fichiers fractionnées pour les sources basées sur des fichiers (Parquet, JSON et ORC). La valeur par défaut est spark.sql. leafNodeDefaultParallélisme. Il s'agit d'une cible suggérée et non d'une limite garantie.

    (aucun)

    spark.sql. inMemoryColumnarStockage. Taille du lot

    Contrôle la taille du lot pour la mise en cache en colonnes. L'augmentation de la taille améliore l'utilisation de la mémoire et la compression, mais augmente le risque d' out-of-memoryerreurs.

    10 000

    spark.sql. inMemoryColumnarStockage compressé

    Spécifie s'il faut sélectionner automatiquement les codecs de compression pour les colonnes en fonction des statistiques de données.

    TRUE

    spark.sql. inMemoryColumnarRangement enableVectorizedReader

    Spécifie s'il faut activer la lecture vectorisée pour la mise en cache en colonnes.

    TRUE

    spark.sql.legacy. allowHashOnMapType

    Spécifie s'il faut autoriser les opérations de hachage sur les structures de données de type carte. Cet ancien paramètre assure la compatibilité avec la gestion des types de carte dans les anciennes versions de Spark.

    spark.sql.legacy. allowNegativeScaleOfDecimal

    Spécifie s'il faut autoriser les valeurs d'échelle négatives dans les définitions de type décimal. Cet ancien paramètre maintient la compatibilité avec les anciennes versions de Spark qui prenaient en charge les échelles décimales négatives.

    spark.sql.legacy. castComplexTypesToString.activé

    Spécifie s'il faut activer le comportement existant pour convertir des types complexes en chaînes. Maintient la compatibilité avec les règles de conversion de type des anciennes versions de Spark.

    spark.sql.legacy. charVarcharAsCorde

    Spécifie s'il faut traiter les types CHAR et VARCHAR comme des types STRING. Cet ancien paramètre assure la compatibilité avec la gestion des types de chaînes des anciennes versions de Spark.

    spark.sql.legacy. createEmptyCollectionUsingStringType

    Spécifie s'il faut créer des collections vides à l'aide d'éléments de type chaîne. Cet ancien paramètre maintient la compatibilité avec le comportement d'initialisation des collections des anciennes versions de Spark.

    spark.sql.legacy. exponentLiteralAsDécimal activé

    Spécifie s'il faut interpréter les littéraux exponentiels comme des types décimaux. Cet ancien paramètre assure la compatibilité avec la gestion littérale numérique des anciennes versions de Spark.

    spark.sql.legacy.json. allowEmptyString.activé

    Spécifie s'il faut autoriser les chaînes vides dans le traitement JSON. Cet ancien paramètre maintient la compatibilité avec le comportement d'analyse JSON des anciennes versions de Spark.

    spark.sql.legacy.parquet.int96 RebaseModelRead

    Spécifie s'il faut utiliser l'ancien mode de rebase d' INT96 horodatage lors de la lecture des fichiers Parquet. Cet ancien paramètre assure la compatibilité avec la gestion des horodatages des anciennes versions de Spark.

    spark.sql.legacy. timeParserPolicy

    Contrôle le comportement d'analyse temporelle à des fins de rétrocompatibilité. Cet ancien paramètre détermine la manière dont les horodatages et les dates sont analysés à partir de chaînes.

    spark.sql.Legacy. TypeCoercion. datetimeToString.activé

    Spécifie s'il faut activer le comportement de coercition de type existant lors de la conversion de valeurs date/heure en chaînes. Maintient la compatibilité avec les règles de conversion date/heure des anciennes versions de Spark.

    spark.sql. maxSinglePartitionOctets

    Définit la taille maximale de la partition en octets. Le planificateur introduit des opérations de shuffle pour les partitions plus grandes afin d'améliorer le parallélisme.

    128 m

    Cache de métadonnées Spark.SQL TTLSeconds

    Contrôle le time-to-live (TTL) pour les caches de métadonnées. S'applique aux métadonnées des fichiers de partition et aux caches du catalogue de sessions. Nécessite :

    • Une valeur positive supérieure à zéro

    • spark.sql.CatalogImplementation défini sur hive

    • spark.sql.hive. filesourcePartitionFileCacheSize supérieur à zéro

    • spark.sql.hive. manageFilesourcePartitions défini sur true

    -1000 ms

    spark.sql.optimizer. collapseProjectAlwaysEn ligne

    Spécifie s'il faut réduire les projections adjacentes et les expressions en ligne, même si cela entraîne une duplication.

    FALSE

    spark.sql.optimizer. dynamicPartitionPruning.activé

    Spécifie s'il faut générer des prédicats pour les colonnes de partition utilisées comme clés de jointure.

    TRUE

    spark.sql.optimizer. enableCsvExpressionOptimisation

    Spécifie s'il faut optimiser les expressions CSV dans l'optimiseur SQL en supprimant les colonnes inutiles des opérations from_csv.

    TRUE

    spark.sql.optimizer. enableJsonExpressionOptimisation

    Spécifie s'il faut optimiser les expressions JSON dans l'optimiseur SQL en :

    • Supprimer les colonnes inutiles des opérations from_json

    • Simplification des combinaisons from_json et to_json

    • Optimisation des opérations named_struct

    TRUE

    Spark.SQL.Optimizer.Règles exclues

    Définit les règles d'optimisation à désactiver, identifiées par des noms de règles séparés par des virgules. Certaines règles ne peuvent pas être désactivées car elles sont nécessaires pour être correctes. L'optimiseur enregistre les règles qui ont été désactivées avec succès.

    (aucun)

    Spark.SQL.Optimizer.Runtime.BloomFilter. applicationSideScanSizeThreshold

    Définit la taille de scan agrégée minimale en octets requise pour injecter un filtre Bloom côté application.

    10 GO

    Spark.SQL.Optimizer.Runtime.BloomFilter. creationSideThreshold

    Définit le seuil de taille maximale pour injecter un filtre Bloom côté création.

    10 MO

    Spark.SQL.Optimizer.Runtime.BloomFilter.Activé

    Spécifie s'il faut insérer un filtre Bloom pour réduire les données de mélange lorsqu'un côté d'une jointure aléatoire comporte un prédicat sélectif.

    TRUE

    Spark.SQL.Optimizer.Runtime.BloomFilter. expectedNumItems

    Définit le nombre par défaut d'éléments attendus dans le filtre Bloom d'exécution.

    1000000

    Spark.SQL.Optimizer.Runtime.BloomFilter. maxNumBits

    Définit le nombre maximum de bits autorisés dans le filtre Bloom d'exécution.

    67108864

    Spark.SQL.Optimizer.Runtime.BloomFilter. maxNumItems

    Définit le nombre maximum d'éléments attendus autorisés dans le filtre Bloom d'exécution.

    4000000

    spark.sql.Optimizer.Runtime.BloomFilter.Number.Threshold

    Limite le nombre maximum de filtres d'exécution non DPP autorisés par requête afin d'éviter les out-of-memory erreurs dans le pilote.

    10

    spark.sql.Optimizer.Runtime.BloomFilter.NumBits

    Définit le nombre de bits par défaut utilisés dans le filtre Bloom d'exécution.

    8388608

    spark.sql.optimizer.runtime. rowlevelOperationGroupFiltre.activé

    Spécifie s'il faut activer le filtrage des groupes d'exécution pour les opérations au niveau des lignes. Permet aux sources de données de :

    • Réduisez des groupes entiers de données (tels que des fichiers ou des partitions) à l'aide de filtres de source de données

    • Exécuter des requêtes d'exécution pour identifier les enregistrements correspondants

    • Supprimez les groupes inutiles pour éviter des réécritures coûteuses

    Limites:

    • Toutes les expressions ne peuvent pas être converties en filtres de source de données

    • Certaines expressions nécessitent une évaluation Spark (telles que les sous-requêtes)

    TRUE

    Spark.SQL.Optimizer.RuntimeFilter. semiJoinReduction.activé

    Spécifie s'il faut insérer une semi-jointure pour réduire les données de mélange lorsqu'un côté d'une jointure aléatoire comporte un prédicat sélectif.

    FALSE

    spark.sql.parquet.AggregatePushdown

    Spécifie s'il faut transférer les agrégats vers Parquet à des fins d'optimisation. Supporte :

    • MIN et MAX pour les types booléen, entier, flottant et date

    • COUNT pour tous les types de données

    Lance une exception si les statistiques sont absentes du pied de page d'un fichier Parquet.

    FALSE

    spark.sql.parquet. columnarReaderBatchTaille

    Contrôle le nombre de lignes dans chaque lot de lecteurs vectorisés Parquet. Choisissez une valeur qui équilibre le surcoût des performances et l'utilisation de la mémoire afin d'éviter out-of-memory les erreurs.

    4096

    spark.sql.session.TimeZone

    Définit le fuseau horaire de session pour la gestion des horodatages sous forme de chaînes littérales et pour la conversion d'objets Java. Accepte :

    • area/city Format basé sur la région IDs (tel que America/Los_Angeles)

    • Décalages de zone au format (+/-) HH, (+/-) HH:mm ou (+/-) HH:mm:ss (tel que -08 ou + 01:00)

    • UTC ou Z comme alias pour + 00:00

    (valeur du fuseau horaire local)

    spark.sql.shuffle.partitions

    Définit le nombre de partitions par défaut pour le brassage des données lors des jointures ou des agrégations. Ne peut pas être modifié entre les redémarrages de requêtes de streaming structurées à partir du même emplacement de point de contrôle.

    200

    spark.sql. shuffledHashJoinFacteur

    Définit le facteur de multiplication utilisé pour déterminer l'éligibilité à la jointure par hachage aléatoire. Une jointure par hachage aléatoire est sélectionnée lorsque la taille des données du petit côté multipliée par ce facteur est inférieure à la taille des données du grand côté.

    3

    spark.sql.sources. parallelPartitionDiscovery.seuil

    Définit le nombre maximum de chemins pour la liste des fichiers côté pilote avec des sources basées sur des fichiers (Parquet, JSON et ORC). En cas de dépassement lors de la découverte de partitions, les fichiers sont répertoriés à l'aide d'une tâche distribuée Spark distincte.

    32

    spark.sql.statistics.histogram.enabled

    Spécifie s'il faut générer des histogrammes à hauteur égale lors du calcul des statistiques des colonnes afin d'améliorer la précision de l'estimation. Nécessite une analyse de table supplémentaire en plus de celle requise pour les statistiques de base sur les colonnes.

    FALSE

  9. Cliquez sur Exécuter.

    Note

    Vous ne pouvez pas exécuter la requête si le membre qui peut recevoir les résultats n'a pas configuré les paramètres des résultats de la requête.

  10. Continuez à ajuster les paramètres et réexécutez votre requête, ou cliquez sur le bouton + pour démarrer une nouvelle requête dans un nouvel onglet.