Opérations de chargement de données - Amazon Redshift

Opérations de chargement de données

Gérez le comportement par défaut de l'opération de chargement pour le dépannage ou pour réduire les temps de chargement en spécifiant les paramètres suivants.

Paramètres

COMPROWS numrows

Permet de spécifier le nombre de lignes à utiliser comme taille d'échantillon pour l'analyse de la compression. L'analyse est exécutée sur les lignes de chaque tranche de données. Par exemple, si vous spécifiez COMPROWS 1000000 (1 000 000) et que le système contient quatre sections totales, pas plus de 250 000 lignes par section sont lues et analysées.

Si le paramètre COMPROWS n'est pas spécifié, la taille de l'échantillon par défaut est de 100 000 par tranche. Les valeurs du paramètre COMPROWS inférieures à la valeur par défaut de 100 000 lignes par tranche sont automatiquement mises à niveau vers la valeur par défaut. Toutefois, la compression automatique n'aura pas lieu si la quantité de données en cours de chargement n'est pas suffisante pour produire un échantillon représentatif.

Si le nombre défini pour le paramètre COMPROWS dépasse le nombre de lignes dans le fichier d'entrée, la commande COPY produit et exécute toujours l'analyse de la compression sur toutes les lignes disponibles. La plage acceptée pour cet argument est un nombre compris entre 1000 et 2147483647 (2 147 483 647).

COMPUPDATE [ PRESET | { ON | TRUE } | { OFF | FALSE } ]

Permet de contrôler si les encodages de compression sont appliqués automatiquement pendant une exécution de la commande COPY.

Lorsque COMPUPDATE utilise PRESET, la commande COPY choisit l'encodage de compression pour chaque colonne si la table de la cible est vide, même si les colonnes ont déjà des encodages autres que RAW. Les encodages de colonne actuellement spécifiés peuvent être remplacés. L'encodage de chaque colonne est basé sur le type de données de la colonne. Aucune donnée échantillonnée. Amazon Redshift attribue automatiquement l'encodage de compression comme suit :

  • Les colonnes qui sont définies comme des clés de tri se voient attribuer une compression RAW.

  • Les colonnes qui sont définies comme des types de données BOOLEAN, REAL ou DOUBLE PRECISION se voient attribuer une compression RAW.

  • Les colonnes qui sont définies comme des types de données SMALLINT, INTEGER, BIGINT, DECIMAL, DATE, TIMESTAMP ou TIMESTAMPTZ se voient attribuer une compression AZ64.

  • Les colonnes définies comme CHAR ou VARCHAR sont affectées à la compression LZO.

Lorsque COMPUPDATE est omis, la commande COPY choisit l'encodage de compression pour chaque colonne uniquement si la table de la cible est vide et si vous n'avez pas spécifié d'encodage (autre que BRUT) pour les colonnes. L'encodage pour chaque colonne est déterminé par Amazon Redshift. Aucune donnée échantillonnée.

Lorsque le paramètre COMPUPDATE est défini sur ON (ou TRUE) ou que le paramètre COMPUPDATE est spécifié sans une option, la commande COPY applique la compression automatique si la table est vide, même si les colonnes de la table contiennent déjà des encodages autres que RAW. Les encodages de colonne actuellement spécifiés peuvent être remplacés. L'encodage de chaque colonne est basé sur une analyse des exemples de données. Pour plus d'informations, consultez Chargement des tables avec compression automatique.

Lorsque le paramètre COMPUPDATE est défini sur OFF (ou FALSE), la compression automatique est désactivée. Les encodages de colonne ne sont pas modifiés.

Pour plus de détails sur la table système utilisée pour analyser la compression, consultez STL_ANALYZE_COMPRESSION.

IGNOREALLERRORS

Vous pouvez spécifier cette option pour ignorer toutes les erreurs qui se produisent pendant l'opération de chargement.

Vous ne pouvez pas spécifier l'option IGNOREALLERRORS si vous spécifiez l'option MAXERROR. Vous ne pouvez pas spécifier l'option IGNOREALLERRORS pour les formats de données en colonnes tels que ORC, Parquet, RCFile et SequenceFile.

MAXERROR [AS] error_count

Si la charge renvoie le nombre d'erreurs error_count ou un nombre supérieur, la charge échoue. Si la charge renvoie moins d'erreurs, elle continue et renvoie un message INFO qui indique le nombre de lignes qui n'a pas pu être chargé. Utilisez ce paramètre pour permettre aux charges de continuer lorsque certaines lignes échouent à se charger dans la table en raison d'erreurs de mise en forme ou d'autres incohérences dans les données.

Définissez cette valeur sur 0 ou 1 si vous voulez que la charge échoue dès que la première erreur se produit. Le mot-clé AS est facultatif. La valeur par défaut MAXERROR est 0 et la limite est 100000.

Le nombre d'erreurs réel signalé peut être supérieur à la valeur du paramètre MAXERROR spécifié en raison de la nature parallèle d'Amazon Redshift. Si un nœud dans le cluster Amazon Redshift détecte que la valeur du paramètre MAXERROR a été dépassée, chaque nœud indique toutes les erreurs qu'il a rencontrées.

NOLOAD

Permet de vérifier la validité du fichier de données sans réellement charger les données. Utilisez le paramètre NOLOAD pour vous assurer que votre fichier de données se charge sans erreur avant d'exécuter la charge de données réelle. L'exécution de COPY avec le paramètre NOLOAD est beaucoup plus rapide que le chargement des données, car il analyse uniquement les fichiers.

STATUPDATE [ { ON | TRUE } | { OFF | FALSE } ]

Permet de définir le calcul automatique et l'actualisation des statistiques de l'optimiseur à la fin d'une commande COPY réussie. Par défaut, si le paramètre STATUPDATE n'est pas utilisé, les statistiques sont mises à jour automatiquement si la table est initialement vide.

Chaque fois qu'une intégration de données dans une table non vide modifie considérablement la taille de la table, nous recommandons la mise à jour des statistiques en exécutant une commande ANALYSE ou en utilisant l'argument STATUPDATE ON.

Avec le paramètre STATUPDATE ON (ou TRUE), les statistiques sont mises à jour automatiquement, que la table soit initialement vide ou non. Si le paramètre STATUPDATE est utilisé, l'utilisateur actuel doit être soit propriétaire de la table soit un super-utilisateur. Si le paramètre STATUPDATE n'est pas spécifié, seule l'autorisation INSERT est obligatoire.

Avec le paramètre STATUPDATE OFF (ou FALSE), les statistiques ne sont jamais mises à jour.

Pour plus d'informations, consultez Analyse des tables.