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.
CREATE EXTERNAL TABLE
Crée une table externe dans le schéma spécifié. Toutes les tables externes doivent être créées dans un schéma externe. Le chemin de recherche n’est pas pris en charge pour les schémas et tables externes. Pour de plus amples informations, veuillez consulter CREATE EXTERNAL SCHEMA.
Outre les tables externes créées à l'aide de la CREATE EXTERNAL TABLE commande, Amazon Redshift peut faire référence à des tables externes définies dans un AWS Lake Formation catalogue AWS Glue ou un métastore Apache Hive. Utilisez la commande CREATE EXTERNAL SCHEMA pour enregistrer une base de données externe définie dans un catalogue de données externe, et faites en sorte que les tables externes puissent être utilisées dans Amazon Redshift. Si la table externe existe dans un AWS Lake Formation catalogue AWS Glue ou un métastore Hive, vous n'avez pas besoin de créer la table à l'aide de. CREATE EXTERNAL TABLE Pour afficher les tables externes, interrogez la vue système SVV_EXTERNAL_TABLES.
En exécutant la commande CREATE EXTERNAL TABLE AS, vous pouvez créer une table externe basée sur la définition de colonne d'une requête et écrire les résultats de cette requête dans Amazon S3. Les résultats sont au format Apache Parquet ou au format texte délimité. Si la table externe possède une ou plusieurs clés de partition, Amazon Redshift partitionne les nouveaux fichiers en fonction de ces clés de partition et enregistre automatiquement les nouvelles partitions dans le catalogue externe. Pour plus d'informations sur CREATE EXTERNAL TABLE l'AS, consultezNotes d’utilisation.
Vous pouvez interroger une table externe en utilisant la même SELECT syntaxe que celle utilisée pour les autres tables Amazon Redshift. Vous pouvez également utiliser la INSERT syntaxe pour écrire de nouveaux fichiers à l'emplacement d'une table externe sur Amazon S3. Pour de plus amples informations, veuillez consulter INSERT(table extérieure).
Pour créer une vue avec une table externe, incluez la SCHEMA BINDING clause WITH NO dans l'CREATE VIEWinstruction.
Vous ne pouvez pas CREATE EXTERNAL TABLE exécuter une transaction (BEGIN...END). Pour plus d’informations sur les transactions, consultez Isolement sérialisable.
Privilèges requis
Pour créer des tables externes, vous devez être le propriétaire du schéma externe ou un superutilisateur. Pour transférer la propriété d'un schéma externe, utilisez ALTER SCHEMA pour changer le propriétaire. L’accès aux tables externes est contrôlé par l’accès au schéma externe. Vous ne pouvez pas accorder GRANT ni révoquer REVOKE des autorisations pour une table externe. Accordez ou révoquez plutôt USAGE sur le schéma externe.
Vous trouverez dans les Notes d’utilisation des informations complémentaires sur les autorisations spécifiques des tables externes.
Syntaxe
CREATE EXTERNAL TABLE external_schema.table_name (column_name data_type [, …] ) [ PARTITIONED BY (col_name data_type [, … ] )] [ { ROW FORMAT DELIMITED row_format | ROW FORMAT SERDE 'serde_name' [ WITH SERDEPROPERTIES ( 'property_name' = 'property_value' [, ...] ) ] } ] STORED AS file_format LOCATION { 's3://bucket/folder/' | 's3://bucket/manifest_file' } [ TABLE PROPERTIES ( 'property_name'='property_value' [, ...] ) ]
La syntaxe de AS est la CREATE EXTERNAL TABLE suivante.
CREATE EXTERNAL TABLE external_schema.table_name [ PARTITIONED BY (col_name [, … ] ) ] [ ROW FORMAT DELIMITED row_format ] STORED AS file_format LOCATION { 's3://bucket/folder/' } [ TABLE PROPERTIES ( 'property_name'='property_value' [, ...] ) ] AS { select_statement }
Paramètres
- schéma_externe.nom_table
-
Nom de la table à créer, qualifié par un nom de schéma externe. Les tables externes doivent être créées dans un schéma externe. Pour plus d'informations, consultez CREATE EXTERNAL SCHEMA.
La longueur maximale d’un nom de table est de 127 octets ; les noms plus longs sont tronqués à 127 octets. Vous pouvez utiliser UTF -8 caractères multioctets jusqu'à un maximum de quatre octets. Amazon Redshift impose une limite de 9 900 tables par cluster, y compris les tables temporaires définies par l’utilisateur et les tables temporaires créées par Amazon Redshift lors du traitement des requêtes ou de la maintenance du système. Le cas échéant, le nom de la table peut être qualifié avec le nom de la base de données. Dans l’exemple suivant, le nom de base de données est
spectrum_db
, le nom du schéma externe estspectrum_schema
et le nom de la table esttest
.create external table spectrum_db.spectrum_schema.test (c1 int) stored as parquet location 's3://amzn-s3-demo-bucket/myfolder/';
Si la base de données ou le schéma spécifié n’existe pas, la table n’est pas créée et l’instruction renvoie une erreur. Vous ne pouvez pas créer de tables ni de vues dans les bases de données système
template0
,template1
,padb_harvest
ousys:internal
.Le nom de la table doit être un nom unique pour le schéma spécifié.
Pour plus d’informations sur les noms valides, consultez Noms et identificateurs.
- ( nom_colonne type_données )
-
Nom et type de données de chaque colonne en cours de création.
La longueur maximale d’un nom de colonne est de 127 octets ; les noms plus longs sont tronqués à 127 octets. Vous pouvez utiliser UTF -8 caractères multioctets jusqu'à un maximum de quatre octets. Vous ne pouvez pas spécifier de noms de colonne
"$path"
ou"$size"
. Pour plus d’informations sur les noms valides, consultez Noms et identificateurs.Par défaut, Amazon Redshift crée les tables externes avec les pseudo-colonnes
$path
et$size
. Vous pouvez désactiver la création de pseudo-colonnes d’une séance en définissant le paramètre de configurationspectrum_enable_pseudo_columns
avec la valeurfalse
. Pour plus d'informations, consultez Pseudocolonnes .Si les pseudo-colonnes sont activées, le nombre maximal de colonnes que vous pouvez définir dans une seule table est 1 598. Si les pseudo-colonnes ne sont pas activées, le nombre maximal de colonnes que vous pouvez définir dans une seule table est 1 600.
Si vous créez une grande table, assurez-vous que la liste de colonnes ne dépasse pas les limites de largeur de ligne pour les résultats intermédiaires pendant le traitement des charges et des requêtes. Pour de plus amples informations, veuillez consulter Notes d’utilisation.
Pour une commande CREATE EXTERNAL TABLE AS, aucune liste de colonnes n'est requise, car les colonnes sont dérivées de la requête.
- data_type
-
Les encodages Types de données suivants sont pris en charge :
-
SMALLINT (INT2)
-
INTEGER (INT, INT4)
-
BIGINT (INT8)
-
DECIMAL (NUMERIC)
-
REAL (FLOAT4)
-
DOUBLE PRECISION (FLOAT8)
-
BOOLEAN (BOOL)
-
CHAR (CHARACTER)
-
VARCHAR (CHARACTER VARYING)
-
VARBYTE(CHARACTERVARYING) — peut être utilisé avec Parquet et les fichiers de ORC données, et uniquement avec des tables non partitionnées.
-
DATE— ne peut être utilisé qu'avec du texte, du parquet ou ORC des fichiers de données, ou comme colonne de partition.
-
TIMESTAMP
En DATE effet, vous pouvez utiliser les formats décrits ci-dessous. Pour les valeurs de mois représentées à l’aide de chiffres, les formats suivants sont pris en charge :
mm-dd-yyyy
Par exemple,05-01-2017
. Il s’agit de l’option par défaut.yyyy-mm-dd
, où l’année est représentée par plus de deux chiffres. Par exemple,2017-05-01
.
Pour les valeurs de mois représentées à l’aide de l’abréviation de trois lettres, les formats suivants sont pris en charge :
mmm-dd-yyyy
Par exemple,may-01-2017
. Il s’agit de l’option par défaut.dd-mmm-yyyy
, où l’année est représentée par plus de deux chiffres. Par exemple,01-may-2017
.yyyy-mmm-dd
, où l’année est représentée par plus de deux chiffres. Par exemple,2017-may-01
.
Pour les valeurs d’années qui sont constamment inférieures à 100, l’année est calculée de la manière suivante :
Si l’année est inférieure à 70, elle est calculée comme l’année plus 2000. Par exemple, la date 05-01-17 au format
mm-dd-yyyy
est convertie au format05-01-2017
.Si l’année est inférieure à 100 et supérieure à 69, l’année est calculée comme l’année plus 1900. Par exemple, la date 05-01-89 au format
mm-dd-yyyy
est convertie au format05-01-1989
.Pour les valeurs d’année représentées par deux chiffres, ajoutez les zéros de tête pour représenter l’année en quatre chiffres.
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
.La longueur d'une VARCHAR colonne est définie en octets et non en caractères. Par exemple, une colonne VARCHAR (12) peut contenir 12 caractères à un octet ou 6 caractères à deux octets. Lorsque vous interrogez une table externe, les résultats sont tronqués pour s’adapter à la taille définie de la colonne sans renvoyer d’erreur. Pour plus d'informations, consultez Stockage et plages.
Pour de meilleures performances, nous vous recommandons de spécifier la plus petite taille de colonne adaptée à vos données. Pour déterminer la taille maximale en octets des valeurs d'une colonne, utilisez la LENGTH fonction OCTET_. L’exemple suivant renvoie la taille maximale des valeurs de la colonne EMAIL.
select max(octet_length(email)) from users;
max --- 62 -
- PARTITIONEDPAR (col_name data_type [,...])
-
Clause qui définit une table partitionnée avec une ou plusieurs colonnes de partition. Un répertoire de données distinct est utilisé pour chaque combinaison spécifiée, ce qui dans certains cas améliore la performance des requêtes. Les colonnes partitionnées n’existent pas au sein même des données de la table. Si la valeur de nom_col est identique à celle d’une colonne de table, une erreur est renvoyée.
Après avoir créé une table partitionnée, modifiez-la à l'aide d'une ADD PARTITION instructionALTER TABLE... pour enregistrer de nouvelles partitions dans le catalogue externe. Lorsque vous ajoutez une partition, vous définissez l’emplacement du sous-dossier sur Amazon S3 qui contient les données de partition.
Par exemple, si la table
spectrum.lineitem_part
est définie avecPARTITIONED BY (l_shipdate date)
, exécutez la ALTER TABLE commande suivante pour ajouter une partition.ALTER TABLE spectrum.lineitem_part ADD PARTITION (l_shipdate='1992-01-29') LOCATION 's3://spectrum-public/lineitem_partition/l_shipdate=1992-01-29';
Si vous utilisez CREATE EXTERNAL TABLE AS, vous n'avez pas besoin de lancer ALTERTABLE... ADDPARTITION. Amazon Redshift enregistre automatiquement les nouvelles partitions dans le catalogue externe. Amazon Redshift écrit également automatiquement les données correspondantes dans les partitions d’Amazon S3 en fonction de la ou des clés de partition définies dans la table.
Pour afficher les partitions, interrogez la vue système SVV_EXTERNAL_PARTITIONS.
Note
Pour une commande CREATE EXTERNAL TABLE AS, il n'est pas nécessaire de spécifier le type de données de la colonne de partition car cette colonne est dérivée de la requête.
- ROWFORMATDELIMITEDformat de ligne
-
Clause qui spécifie le format des données sous-jacentes. Les valeurs possibles pour format_ligne sont les suivantes :
-
LINESTERMINATEDPAR « délimiteur »
-
FIELDSTERMINATEDPAR « délimiteur »
Spécifiez un seul ASCII caractère pour « délimiteur ». Vous pouvez spécifier des ASCII caractères non imprimables en octal, au format
'\
ddd
'
composé d'un chiffre octal (0—7) allant jusqu'à « \ 177 ».d
L'exemple suivant spécifie le caractère BEL (cloche) en octal.ROW FORMAT DELIMITED FIELDS TERMINATED BY '\007'
S'il ROW FORMAT est omis, le format par défaut est DELIMITED FIELDS TERMINATED BY '\ A' (début du titre) et LINES TERMINATED BY'\n'(nouvelle ligne).
-
- ROWFORMATSERDE« nom_serveur »
- [WITHSERDEPROPERTIES('nom_propriété' = 'valeur_propriété' [,...])]
-
Clause qui spécifie le SERDE format des données sous-jacentes.
- ’nom_sérialisation_désérialisation’
-
Le nom du SerDe. Vous pouvez spécifier les formats suivants :
-
org.apache.hadoop.hive.serde2. RegexSerDe
-
com.amazonaws.glue.serde. GrokSerDe
-
org.apache.hadoop.hive.serde2.o penCSVSerde
Ce paramètre prend en charge les SerDe propriétés suivantes pour O penCSVSerde :
'wholeFile' = 'true'
Définissez la
wholeFile
propriété surtrue
pour analyser correctement les nouveaux caractères de ligne (\n) entre guillemets pour les requêtes OpenCSV. -
org.openx.data.json. JsonSerDe
-
JSONSERDEIl prend également en charge les fichiers Ion.
-
Ils JSON doivent être bien formés.
-
Les horodatages sont en ion et JSON doivent utiliser le format ISO86 01.
-
Ce paramètre prend en charge les SerDe propriétés suivantes pour JsonSerDe :
'strip.outer.array'='true'
Traite JSON les fichiers Ion/ contenant un très grand tableau entre crochets ([...]) comme s'ils contenaient plusieurs JSON enregistrements dans le tableau.
-
-
com.amazon.ionhiveserde. IonHiveSerDe
Le ION format Amazon fournit des formats texte et binaires, en plus des types de données. Pour une table externe qui référence des données au ION format, vous mappez chaque colonne de la table externe à l'élément correspondant dans les données de ION format. Pour plus d’informations, consultez Amazon Ion
. Vous devez également spécifier les formats d’entrée et de sortie.
-
- WITHSERDEPROPERTIES('nom_propriété' = 'valeur_propriété' [,...])]
-
À titre facultatif, spécifiez les noms et valeurs des propriétés, séparés par des virgules.
S'il ROW FORMAT est omis, le format par défaut est DELIMITED FIELDS TERMINATED BY '\ A' (début du titre) et LINES TERMINATED BY'\n'(nouvelle ligne).
- STOREDFormat de fichier AS
-
Format des fichiers de données.
Les formats valides sont les suivants :
-
PARQUET
-
RCFILE(pour l'utilisation des données ColumnarSerDe uniquement, pas LazyBinaryColumnarSerDe)
-
SEQUENCEFILE
-
TEXTFILE(pour les fichiers texte, y compris JSON les fichiers).
-
ORC
-
AVRO
-
INPUTFORMAT'input_format_classname' 'Output_format_classname' OUTPUTFORMAT
La commande CREATE EXTERNAL TABLE AS ne prend en charge que deux formats de fichier, TEXTFILE etPARQUET.
Pour INPUTFORMAT etOUTPUTFORMAT, spécifiez un nom de classe, comme le montre l'exemple suivant.
'org.apache.hadoop.mapred.TextInputFormat'
-
- LOCATION{'s3 ://bucket/dossier /' | 's3 ://bucket/manifest_file '}
-
Chemin menant au compartiment Amazon S3 ou au dossier qui contient les fichiers de données ou un fichier manifeste qui contient une liste de chemins d’objets Amazon S3. Les compartiments doivent se trouver dans la même AWS région que le cluster Amazon Redshift. Pour obtenir la liste des AWS régions prises en charge, consultezLimites d'Amazon Redshift Spectrum.
Si le chemin précise un compartiment ou un dossier, par exemple,
's3://amzn-s3-demo-bucket/custdata/'
, Redshift Spectrum analyse les fichiers qui se trouvent dans le compartiment ou dossier spécifié et dans tous les sous-dossiers. Redshift Spectrum ignore les fichiers masqués ainsi que les fichiers dont le nom commence par un point ou un trait de soulignement.Si le chemin indique un fichier manifeste, l’argument
's3://bucket/manifest_file'
doit explicitement faire référence à un seul fichier, par exemple,'s3://amzn-s3-demo-bucket/manifest.txt'
. Il ne peut pas faire référence à un préfixe de clé.Le manifeste est un fichier texte au JSON format qui répertorie le nom URL de chaque fichier à charger depuis Amazon S3 et la taille du fichier, en octets. URLCela inclut le nom du compartiment et le chemin complet de l'objet du fichier. Les fichiers spécifiés dans le manifeste peuvent se trouver dans différents compartiments, mais tous les compartiments doivent se trouver dans la même AWS région que le cluster Amazon Redshift. Si un fichier est répertorié deux fois, le fichier est chargé deux fois. L'exemple suivant montre le JSON cas d'un manifeste qui charge trois fichiers.
{ "entries": [ {"url":"s3://amzn-s3-demo-bucket1/custdata.1", "meta": { "content_length": 5956875 } }, {"url":"s3://amzn-s3-demo-bucket1/custdata.2", "meta": { "content_length": 5997091 } }, {"url":"s3://amzn-s3-demo-bucket2/custdata.1", "meta": { "content_length": 5978675 } } ] }
Vous pouvez rendre obligatoire l’inclusion d’un fichier particulier. Pour ce faire, incluez une option
mandatory
au niveau du fichier dans le manifeste. Lorsque vous interrogez une table externe dont un fichier obligatoire est manquant, l'SELECTinstruction échoue. Assurez-vous que tous les fichiers inclus dans la définition de la table externe sont présents. S’ils ne sont pas tous présents, une erreur apparaît, indiquant le premier fichier obligatoire introuvable. L'exemple suivant montre le nom JSON d'un manifeste dont l'mandatory
option est définie surtrue
.{ "entries": [ {"url":"s3://amzn-s3-demo-bucket1/custdata.1", "mandatory":true, "meta": { "content_length": 5956875 } }, {"url":"s3://amzn-s3-demo-bucket1/custdata.2", "mandatory":false, "meta": { "content_length": 5997091 } }, {"url":"s3://amzn-s3-demo-bucket2/custdata.1", "meta": { "content_length": 5978675 } } ] }
Pour référencer des fichiers créés à l'aide du paramètreUNLOAD, vous pouvez utiliser le manifeste créé à l'UNLOADaide du MANIFEST paramètre. Le fichier manifeste est compatible avec un fichier manifeste pour COPYdepuis Amazon S3, mais il n’utilise pas les mêmes clés. Les clés inutilisées sont ignorées.
- TABLEPROPERTIES('nom_propriété' = 'valeur_propriété' [,...])
-
Clause qui définit la définition de table pour des propriétés de table.
Note
Les propriétés de table sont sensibles à la casse.
- ’compression_type’=’valeur’
-
Propriété qui définit le type de compression à utiliser si le nom de fichier ne contient aucune extension. Si vous définissez cette propriété et que le nom de fichier contient une extension, celle-ci est ignorée et la valeur définie par la propriété est utilisée. Les valeurs valides pour chaque type de compression sont les suivantes :
-
bzip2
-
gzip
-
none
-
snappy
-
- ’data_cleansing_enabled’=’true / false’
-
Cette propriété définit si la gestion des données est activée pour la table. Lorsque ’data_cleansing_enabled’ est définie sur « true », la gestion des données est activée pour la table. Lorsque ’data_cleansing_enabled’ est définie sur « false », la gestion des données est désactivée pour la table. Vous trouverez ci-dessous la liste des propriétés de gestion des données au niveau de la table contrôlées par cette propriété :
column_count_mismatch_handling
invalid_char_handling
numeric_overflow_handling
replacement_char
surplus_char_handling
Pour obtenir des exemples, consultez Exemples de gestion des données.
- ’invalid_char_handling’=’value’
-
Spécifie l'action à effectuer lorsque les résultats de la requête contiennent des valeurs de UTF -8 caractères non valides. Vous pouvez spécifier les actions suivantes :
- DISABLED
N’effectue pas de gestion des caractères non valides.
- FAIL
Annule les requêtes renvoyant des données contenant des valeurs UTF -8 non valides.
- SET_À_ NULL
Remplace les valeurs UTF -8 non valides par des valeurs nulles.
- DROP_ROW
Remplace chaque valeur de la ligne par null.
- REPLACE
Remplace le caractère non valide par le caractère de remplacement que vous spécifiez à l’aide de
replacement_char
.
- ’replacement_char’=’character’
-
Spécifie le caractère de remplacement à utiliser lorsque vous définissez
invalid_char_handling
surREPLACE
. - ’numeric_overflow_handling’=’value’
-
Spécifie l'action à effectuer lorsque ORC les données contiennent un entier (par exemple, BIGINT ou int64) supérieur à la définition de colonne (par exemple, SMALLINT ou int16). Vous pouvez spécifier les actions suivantes :
- DISABLED
La gestion des caractères non valide est désactivée.
- FAIL
Annulez la requête lorsque les données contiennent des caractères non valides.
- SET_À_ NULL
Définissez les caractères non valides sur null.
- DROP_ROW
Définissez chaque valeur de la ligne sur null.
- ’surplus_bytes_handling’=’value’
-
Spécifie comment gérer les données chargées qui dépassent la longueur du type de données défini pour les colonnes contenant des VARBYTE données. Par défaut, Redshift Spectrum définit la valeur sur null pour les données qui dépassent la largeur de la colonne.
Vous pouvez spécifier les actions suivantes à effectuer lorsque la requête renvoie des données qui dépassent la longueur du type de données :
- SET_À_ NULL
Remplace les données qui dépassent la largeur de colonne par null.
- DISABLED
N’effectue pas de gestion des octets excédentaires.
- FAIL
Annule les requêtes qui renvoient des données dépassant la largeur de colonne.
- DROP_ROW
Supprime toutes les lignes qui contiennent des données qui dépassent la largeur de la colonne.
- TRUNCATE
Supprime les caractères qui dépassent le nombre maximal de caractères défini pour la colonne.
- ’surplus_char_handling’=’value’
-
Spécifie comment gérer les données chargées qui dépassent la longueur du type de données défini pour les colonnes contenant des VARCHAR données ou des chaînes de données. CHAR Par défaut, Redshift Spectrum définit la valeur sur null pour les données qui dépassent la largeur de la colonne.
Vous pouvez spécifier les actions suivantes à effectuer lorsque la requête renvoie des données qui dépassent la largeur de la colonne :
- SET_À_ NULL
Remplace les données qui dépassent la largeur de colonne par null.
- DISABLED
N’effectue pas de gestion des caractères excédentaires.
- FAIL
Annule les requêtes qui renvoient des données dépassant la largeur de colonne.
- DROP_ROW
Remplace chaque valeur de la ligne par null.
- TRUNCATE
Supprime les caractères qui dépassent le nombre maximal de caractères défini pour la colonne.
- ’column_count_mismatch_handling’=’value’
-
Indique si le fichier contient moins ou plus de valeurs pour une ligne que le nombre de colonnes spécifié dans la définition de la table externe. Cette propriété est disponible uniquement pour un format de fichier texte non compressé. Vous pouvez spécifier les actions suivantes :
- DISABLED
La gestion des non-correspondances du nombre de colonnes est désactivée.
- FAIL
Fait échouer la requête si la non-correspondance du nombre de colonnes est détectée.
- SET_À_ NULL
Remplissez les valeurs manquantes avec NULL les valeurs supplémentaires de chaque ligne et ignorez-les.
- DROP_ROW
Supprime de l’analyse toutes les lignes qui contiennent une erreur de non-correspondance du nombre de colonnes.
- 'numRows' = 'nombre de lignes'
-
Propriété qui définit la numRows valeur de la définition de table. Pour mettre à jour explicitement les statistiques d'une table externe, définissez la numRows propriété pour indiquer la taille de la table. Amazon Redshift n'analyse pas des tables externes pour générer les statistiques de table utilisées par l'optimiseur de requête afin de générer un plan de requête. Si des statistiques de table ne sont pas définies pour une table externe, Amazon Redshift génère un plan d’exécution de requête d’après l’hypothèse selon laquelle les tables externes sont les tables les plus volumineuses et les tables locales les tables les plus petites.
- ’skip.header.line.count’=’nombre_lignes’
-
Propriété qui définit le nombre de lignes à ignorer au début de chaque fichier source.
- ’serialization.null.format’=’ ’
-
Propriété qui spécifie que Spectrum doit renvoyer une valeur
NULL
lorsqu’il y a une correspondance exacte avec le texte fourni dans un champ. - ’orc.schema.resolution’=’type_mappage’
-
Propriété qui définit le type de mappage de colonnes pour les tables utilisant le format de ORC données. Cette propriété est ignorée pour tous les autres formats de données.
Les valeurs valides pour le type de mappage de colonne sont les suivantes :
-
name
-
position
Si la propriété orc.schema.resolution est omise, les colonnes sont mappées par nom par défaut. Si la propriété orc.schema.resolution est définie sur une autre valeur que ’name’ ou ’position’, les colonnes sont mappées par position. Pour en savoir plus sur le mappage des colonnes, consultez Associer des colonnes de table externes à ORC des colonnes.
Note
La COPY commande est mappée aux fichiers de ORC données uniquement par position. La propriété de table orc.schema.resolution n'a aucun effet sur le comportement des commandes. COPY
-
- ’write.parallel’=’on / off’
-
Propriété qui définit si CREATE EXTERNAL TABLE AS doit écrire des données en parallèle. Par défaut, CREATE EXTERNAL TABLE AS écrit les données en parallèle dans plusieurs fichiers, en fonction du nombre de tranches du cluster. Par défaut, l’option est activée. Lorsque 'write.parallel' est défini sur off, CREATE EXTERNAL TABLE AS écrit dans un ou plusieurs fichiers de données en série sur Amazon S3. Cette propriété de table s'applique également à toute INSERT instruction ultérieure dans la même table externe.
- ‘write.maxfilesize.mb’=‘size’
-
Propriété qui définit la taille maximale (en Mo) de chaque fichier écrit sur Amazon S3 par CREATE EXTERNAL TABLE AS. La taille doit être un entier valide compris entre 5 et 6 200. La taille maximale par défaut du fichier est de 6 200 Mo. Cette propriété de table s'applique également à toute INSERT instruction ultérieure dans la même table externe.
- ‘write.kms.key.id’=‘value’
-
Vous pouvez spécifier une AWS Key Management Service clé pour activer le chiffrement côté serveur (SSE) pour les objets Amazon S3, dont la valeur est l'une des suivantes :
auto
pour utiliser la AWS KMS clé par défaut stockée dans le compartiment Amazon S3.kms-key que vous spécifiez pour chiffrer les données.
- select_statement
-
Instruction qui insère une ou plusieurs lignes dans la table externe en définissant une requête. Toutes les lignes produites par la requête sont écrites dans Amazon S3 au format texte ou Parquet en fonction de la définition de la table.
Exemples
Divers exemples sont disponibles à la page Exemples.