Création de fichiers de données pour les requêtes dans Amazon Redshift Spectrum - Amazon Redshift

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.

Création de fichiers de données pour les requêtes dans Amazon Redshift Spectrum

Les fichiers de données que vous utilisez pour les requêtes dans Amazon Redshift Spectrum sont généralement les mêmes types de fichiers que vous utilisez pour d’autres applications. Par exemple, les mêmes types de fichiers sont utilisés avec Amazon Athena, Amazon EMR et Amazon. QuickSight Vous pouvez interroger les données dans leur format original directement depuis Amazon S3. Pour ce faire, les fichiers de données doivent être dans un format pris en charge par Redshift Spectrum et être situés dans un compartiment Amazon S3 auquel votre cluster peut accéder.

Le compartiment Amazon S3 contenant les fichiers de données et le cluster Amazon Redshift doivent se trouver dans la même AWS région. Pour plus d'informations sur AWS les régions prises en charge, consultezRégions Amazon Redshift Spectrum.

Formats de données pour Redshift Spectrum

Redshift Spectrum prend en charge les formats de données structurées et semi-structurées suivants.

Format de fichier Colonne Prend en charge les lectures parallèles Unité fractionnée
Parquet Oui Oui Groupe de lignes
ORC Oui Oui Stripe
RCFile Oui Oui Groupe de lignes
TextFile Non Oui Rangée
SequenceFile Non Oui Ligne ou bloc
RegexSerde Non Oui Rangée
OpenCSV Non Oui Rangée
AVRO Non Oui Bloc
Ion Non Non N/A
JSON Non Non N/A

Dans le tableau précédent, les titres indiquent ce qui suit :

  • Colonnaire – Si le format de fichier stocke physiquement les données dans une structure orientée colonnes par opposition à une structure orientée lignes.

  • Prise en charge des lectures parallèles – Indique si le format de fichier prend en charge la lecture de blocs individuels dans le fichier. La lecture de blocs individuels permet de répartir le traitement d’un fichier sur plusieurs requêtes Redshift Spectrum indépendantes, au lieu de devoir lire le fichier complet en une seule requête.

  • Unité de fractionnement – Pour les formats de fichiers qui peuvent être lus en parallèle, l’unité de fractionnement est le plus petit morceau de données qu’une seule requête Redshift Spectrum peut traiter.

    Note

    Les valeurs d’horodatage dans les fichiers texte doivent être au format yyyy-MM-dd HH:mm:ss.SSSSSS, comme illustré par la valeur d’horodatage suivante : 2017-05-01 11:30:59.000000.

    Nous recommandons d’utiliser un format de fichier de stockage en colonnes, tel qu’Apache Parquet. Avec un format de fichier de stockage en colonnes, vous pouvez minimiser le transfert de données hors d’Amazon S3 en ne sélectionnant que les colonnes dont vous avez besoin.

Types de compression pour Redshift Spectrum

Il est vivement recommandé de compresser vos fichiers de données afin de réduire l’espace de stockage, d’améliorer les performances et de diminuer les coûts. Redshift Spectrum reconnaît les types de compression de fichiers en fonction de l’extension de fichier.

Redshift Spectrum prend en charge les types de compression et extensions suivants.

Algorithme de compression Extension de fichier Prend en charge les lectures parallèles
Gzip .gz Non
Bzip2 .bz2 Oui
Snappy .snappy Non

Vous pouvez appliquer la compression à différents niveaux. Le plus souvent, vous compressez un fichier entier ou des blocs individuels dans un fichier. La compression des formats de colonnes au niveau du fichier n’entraîne pas d’avantages en termes de performances.

Pour que Redshift Spectrum puisse lire un fichier en parallèle, les conditions suivantes doivent être remplies :

  • Le format de fichier prend en charge les lectures parallèles.

  • La compression au niveau du fichier, le cas échéant, prend en charge les lectures parallèles.

Il importe peu que les unités de fractionnement individuelles d’un fichier soient compressées à l’aide d’un algorithme de compression pouvant être lu en parallèle, car chaque unité de fractionnement est traitée par une seule requête Redshift Spectrum. Les fichiers Parquet compressés par Snappy illustrent ce cas de figure. Les groupes de lignes individuels dans le fichier Parquet sont compressés à l’aide de Snappy, mais la structure de niveau supérieur du fichier reste non compressée. Dans ce cas, le fichier peut être lu en parallèle car chaque requête Redshift Spectrum peut lire et traiter des groupes de lignes individuels depuis Amazon S3.

Chiffrement pour Redshift Spectrum

Redshift Spectrum déchiffre de manière transparente les fichiers de données chiffrés à l’aide des options de chiffrement suivantes :

  • Chiffrement côté serveur (SSE-S3) à l’aide d’une clé de chiffrement AES-256 gérée par Amazon S3.

  • Chiffrement côté serveur avec des clés gérées par AWS Key Management Service (SSE-KMS).

Redshift Spectrum ne prend pas en charge le chiffrement côté client d’Amazon S3. Pour plus d’informations sur le chiffrement côté serveur, consultez Protection des données à l’aide du chiffrement côté serveur dans le Guide de l’utilisateur Amazon Simple Storage Service.

Amazon Redshift utilise le traitement massivement parallèle (MPP) pour obtenir une exécution rapide de requêtes complexes opérant sur de grandes quantités de données. Redshift Spectrum applique le même principe pour interroger les données externes, en utilisant si nécessaire plusieurs instances Redshift Spectrum pour analyser les fichiers. Placez les fichiers dans un dossier distinct pour chaque table.

Vous pouvez optimiser vos données pour un traitement parallèle en procédant comme suit :

  • Si votre format de fichier ou votre compression ne prend pas en charge la lecture en parallèle, divisez les fichiers volumineux en plusieurs fichiers plus petits. Nous vous recommandons d’utiliser des fichiers d’une taille comprise entre 64 Mo et 1 Go.

  • Faites en sorte que tous les fichiers aient à peu près la même taille. Redshift Spectrum ne peut pas distribuer équitablement la charge de travail si certains fichiers sont beaucoup plus volumineux que d’autres.