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.
Chargement de données dans un cluster Amazon Aurora My SQL DB à partir de fichiers texte dans un compartiment Amazon S3
Vous pouvez utiliser l'instruction LOAD DATA FROM S3
ou LOAD XML FROM S3
pour charger les données de fichiers stockés dans un compartiment Amazon S3. Dans Aurora MySQL, les fichiers sont d'abord stockés sur le disque local, puis importés dans la base de données. Une fois les importations dans la base de données effectuées, les fichiers locaux sont supprimés.
Note
Le chargement de données dans une table à partir de fichiers texte n'est pas pris en charge pour Aurora Serverless v1. Elle est prise en charge pour Aurora Serverless v2.
Table des matières
Octroi à Aurora d'un accès à Amazon S3
Avant de charger des données depuis un compartiment Amazon S3, vous devez d'abord autoriser votre cluster Aurora My SQL DB à accéder à Amazon S3.
Pour donner à Aurora My SQL l'accès à Amazon S3
-
Créez une politique AWS Identity and Access Management (IAM) qui fournit les autorisations de compartiment et d'objet permettant à votre cluster Aurora My SQL DB d'accéder à Amazon S3. Pour obtenir des instructions, consultez Création d'une IAM politique d'accès aux ressources Amazon S3.
Note
Dans Aurora My SQL version 3.05 et versions ultérieures, vous pouvez charger des objets chiffrés à l'aide de la gestion client AWS KMS keys. Pour ce faire, incluez l'
kms:Decrypt
autorisation dans votre IAM politique. Pour de plus amples informations, veuillez consulter Création d'une stratégie IAM pour accéder aux ressources AWS KMS.Vous n'avez pas besoin de cette autorisation pour charger des objets chiffrés à l'aide Clés gérées par AWS de clés gérées par Amazon S3 (SSE-S3).
-
Créez un IAM rôle et associez la IAM politique que vous avez créée Création d'une IAM politique d'accès aux ressources Amazon S3 au nouveau IAM rôle. Pour obtenir des instructions, consultez Création d'un rôle IAM pour autoriser Amazon Aurora à accéder aux services AWS.
-
Assurez-vous que le cluster de base de données utilise un groupe de paramètres de cluster de base de données personnalisé.
Pour de plus amples informations sur la création d'un groupe de paramètres de cluster de base de données, veuillez consulter Création d'un groupe de paramètres de cluster de base de données dans Amazon Aurora.
-
Pour Aurora My SQL version 2, définissez le paramètre
aurora_load_from_s3_role
ou le paramètre duaws_default_s3_role
cluster de base de données sur le nom de ressource Amazon (ARN) du nouveau IAM rôle. Si aucun IAM rôle n'est spécifié pouraurora_load_from_s3_role
, Aurora utilise le IAM rôle spécifié dansaws_default_s3_role
.Pour Aurora My SQL version 3, utilisez
aws_default_s3_role
.Si le cluster fait partie d'une base de données globale Aurora, définissez ce paramètre pour chaque cluster Aurora de cette base de données. Bien que seul le cluster principal d'une base de données globale Aurora puisse charger des données, un autre cluster peut être promu en tant que cluster principal par le mécanisme de basculement.
Pour plus d'informations sur les paramètres de cluster de base de données, consultez Paramètres de cluster de base de données et d'instance de base de données Amazon Aurora.
-
Pour permettre aux utilisateurs de base de données d'un cluster Aurora My SQL DB d'accéder à Amazon S3, associez le rôle que vous avez créé Création d'un rôle IAM pour autoriser Amazon Aurora à accéder aux services AWS au cluster de base de données. Pour une base de données globale Aurora, associez le rôle à chaque cluster Aurora de cette base de données. Pour plus d'informations sur l'association d'un IAM rôle à un cluster de base de données, consultezAssociation d'un rôle IAM à un cluster de bases de données Amazon Aurora MySQL.
-
Configurez votre cluster Aurora My SQL DB pour autoriser les connexions sortantes vers Amazon S3. Pour obtenir des instructions, consultez Permettre la communication réseau entre Amazon Aurora et d'autres AWS services.
Si votre cluster de base de données n'est pas accessible au public et se trouve dans un sous-réseau VPC public, il est privé. Vous pouvez créer un point de terminaison de passerelle S3 pour accéder à votre compartiment S3. Pour plus d'informations, consultez Points de terminaison de passerelle pour Amazon S3.
Pour une base de données globale Aurora, activez les connexions sortantes pour chaque cluster Aurora de cette base de données.
Octroi de privilèges pour charger des données dans Amazon Aurora My SQL
L'utilisateur de base de données qui émet l'instruction LOAD DATA FROM S3
ou LOAD XML FROM S3
doit avoir un rôle ou un privilège spécifique pour l'émettre. Dans Aurora My SQL version 3, vous accordez le AWS_LOAD_S3_ACCESS
rôle. Dans Aurora My SQL version 2, vous accordez le LOAD FROM S3
privilège. L'utilisateur administratif d'un cluster de base de données reçoit le rôle ou le privilège approprié par défaut. Vous pouvez accorder le privilège à un autre utilisateur à l'aide des instructions suivantes.
Utilisez l'instruction suivante pour Aurora My SQL version 3 :
GRANT AWS_LOAD_S3_ACCESS TO '
user
'@'domain-or-ip-address
'
Astuce
Lorsque vous utilisez la technique des rôles dans Aurora My SQL version 3, vous pouvez également activer le rôle à l'aide de l'SET ROLE
ALL
instruction SET ROLE
or. Si vous ne connaissez pas le système de rôles My SQL 8.0, vous pouvez en savoir plus dansModèle de privilège basé sur les rôles. Pour plus de détails, consultez la section Utilisation des rôlesrole_name
Cela s'applique uniquement à la session active en cours. Lorsque vous vous reconnectez, vous devez exécuter à nouveau l'SET ROLE
instruction pour accorder des privilèges. Pour plus d'informations, voir la SETROLEdéclaration
Vous pouvez utiliser le paramètre activate_all_roles_on_login
de cluster de base de données pour activer automatiquement tous les rôles lorsqu'un utilisateur se connecte à une instance de base de données. Lorsque ce paramètre est défini, il n'est généralement pas nécessaire d'appeler explicitement l'SET ROLE
instruction pour activer un rôle. Pour plus d'informations, consultez activate_all_roles_on_login
Toutefois, vous devez appeler SET ROLE ALL
explicitement au début d'une procédure stockée pour activer le rôle, lorsque la procédure stockée est appelée par un autre utilisateur.
Utilisez l'instruction suivante pour Aurora My SQL version 2 :
GRANT LOAD FROM S3 ON *.* TO '
user
'@'domain-or-ip-address
'
Le AWS_LOAD_S3_ACCESS
rôle et le LOAD FROM S3
privilège sont spécifiques à Amazon Aurora et ne sont pas disponibles pour les SQL bases de données My DB externes ni RDS pour les instances My SQL DB. Si vous avez configuré la réplication entre un cluster de base de données Aurora en tant que source de réplication et une base de SQL données My Database en tant que client de réplication, l'GRANT
instruction relative au rôle ou au privilège entraîne l'arrêt de la réplication avec une erreur. Vous pouvez ignorer sans risque l'erreur afin de reprendre la réplication. Pour ignorer l'erreur sur une SQL instance RDS for My, utilisez la procédure mysql_rds_skip_repl_error. Pour ignorer l'erreur sur une SQL base de données My externe, utilisez la variable système slave_skip_errors (Aurora My SQL version 2) ou la variable système
Note
L'utilisateur de la base de données doit disposer de INSERT
privilèges pour la base de données dans laquelle il charge les données.
Spécification du chemin (URI) vers un compartiment Amazon S3
La syntaxe permettant de spécifier le chemin (URI) vers les fichiers stockés dans un compartiment Amazon S3 est la suivante.
s3
-region
://amzn-s3-demo-bucket
/file-name-or-prefix
Le chemin d'accès inclut les valeurs suivantes :
-
region
(facultatif) — La AWS région qui contient le compartiment Amazon S3 à partir duquel le chargement doit être effectué. Cette valeur est facultative. Si vous ne spécifiez pas de valeurregion
, Aurora charge votre fichier à partir d'Amazon S3 dans la même région que votre cluster de base de données. -
bucket-name
– Nom du compartiment Amazon S3 qui contient les données à charger. Les préfixes d'objet qui identifient un chemin d'accès du dossier virtuel sont pris en charge. -
file-name-or-prefix
— Le nom du fichier texte ou XML du fichier Amazon S3, ou un préfixe identifiant un ou plusieurs textes ou XML fichiers à charger. Vous pouvez également spécifier un fichier manifeste qui identifie un ou plusieurs fichiers texte à charger. Pour plus d'informations sur l'utilisation d'un fichier manifeste pour charger des fichiers texte à partir d'Amazon S3, consultez Utilisation d'un manifeste pour spécifier les fichiers de données à charger.
Pour copier les fichiers URI for dans un compartiment S3
Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/s3/
. -
Dans le volet de navigation, choisissez Buckets, puis choisissez le bucket que URI vous souhaitez copier.
-
Sélectionnez le préfixe ou le fichier que vous souhaitez charger depuis S3.
-
Choisissez Copy S3 URI.
LOADDATAFROMS3
Vous pouvez utiliser l'LOAD DATA FROM S3
instruction pour charger des données à partir de n'importe quel format de fichier texte pris en charge par l'SQLLOADDATAINFILE
Note
Assurez-vous que votre cluster Aurora My SQL DB autorise les connexions sortantes vers S3. Pour de plus amples informations, veuillez consulter Permettre la communication réseau entre Amazon Aurora et d'autres AWS services.
Syntaxe
LOAD DATA [FROM] S3 [FILE | PREFIX | MANIFEST] '
S3-URI
' [REPLACE | IGNORE] INTO TABLEtbl_name
[PARTITION (partition_name
,...)] [CHARACTER SETcharset_name
] [{FIELDS | COLUMNS} [TERMINATED BY 'string
'] [[OPTIONALLY] ENCLOSED BY 'char
'] [ESCAPED BY 'char
'] ] [LINES [STARTING BY 'string
'] [TERMINATED BY 'string
'] ] [IGNOREnumber
{LINES | ROWS}] [(col_name_or_user_var
,...)] [SETcol_name
=expr
,...]
Note
Dans Aurora My SQL version 3.05 et versions ultérieures, le mot clé FROM
est facultatif.
Paramètres
L'instruction LOAD DATA FROM S3
utilise les paramètres obligatoires et facultatifs suivants. Vous trouverez plus de détails sur certains de ces paramètres dans la section LOADDATAStatement
- FILE | PREFIX | MANIFEST
-
Indique si les données sont chargées à partir d'un seul fichier, à partir de tous les fichiers qui correspondent à un préfixe donné ou à partir de tous les fichiers contenus dans un manifeste spécifié.
FILE
est la valeur par défaut. - S3- URI
-
Spécifie URI le fichier texte ou manifeste à charger, ou le préfixe Amazon S3 à utiliser. Spécifiez le URI en utilisant la syntaxe décrite dansSpécification du chemin (URI) vers un compartiment Amazon S3.
- REPLACE | IGNORE
-
Détermine l'action à effectuer si une ligne d'entrée a les mêmes valeurs de clé uniques qu'une ligne existante dans la table de base de données.
-
Spécifiez
REPLACE
si vous souhaitez que la ligne d'entrée remplace la ligne existante dans la table. -
Spécifiez
IGNORE
si vous souhaitez supprimer la ligne d'entrée.
-
- INTO TABLE
-
Identifie le nom de la table de base de données dans laquelle charger les lignes d'entrée.
- PARTITION
-
Exige que toutes les lignes d'entrée soient insérées dans les partitions identifiées par la liste spécifiée de noms de partition séparés par des virgules. Si une ligne d'entrée ne peut pas être insérée dans l'une des partitions spécifiées, l'instruction échoue et une erreur est renvoyée.
- CHARACTER SET
-
Identifie le jeu de caractères des données du fichier d'entrée.
- FIELDS | COLUMNS
-
Identifie la façon dont les champs ou les colonnes sont délimités dans le fichier d'entrée. Par défaut, les champs sont délimités par des tabulations.
- LINES
-
Identifie la façon dont les lignes sont délimitées dans le fichier d'entrée. Les lignes sont délimitées par un caractère de saut de ligne (
'\n'
) par défaut. - IGNORE
number
LINES | ROWS -
Indique qu'un certain nombre de lignes au début du fichier d'entrée doivent être ignorées. Par exemple, vous pouvez utiliser
IGNORE 1 LINES
pour laisser de côté une ligne d'en-tête initiale contenant les noms de colonnes ouIGNORE 2 ROWS
les deux premières lignes de données dans le fichier d'entrée. Si vous utilisez égalementPREFIX
,IGNORE
ignore un certain nombre de lignes au début du premier fichier d'entrée. - col_name_or_user_var, ...
-
Spécifie la liste séparée par des virgules d'un ou plusieurs noms de colonne ou de variables utilisateur qui identifient les colonnes à charger par nom. Le nom d'une variable utilisateur utilisé à cette fin doit correspondre au nom d'un élément dans le fichier texte, préfixé par @. Vous pouvez utiliser les variables utilisateur pour stocker les valeurs de champ correspondantes pour une réutilisation ultérieure.
Par exemple, l'instruction suivante charge la première colonne du fichier d'entrée dans la première colonne de
table1
et affecte à la colonnetable_column2
danstable1
la valeur d'entrée de la deuxième colonne divisée par 100.LOAD DATA FROM S3 's3://
amzn-s3-demo-bucket
/data.txt' INTO TABLE table1 (column1, @var1) SET table_column2 = @var1/100; - SET
-
Spécifie la liste séparée par des virgules des opérations d'affectation qui attribuent aux colonnes de la table des valeurs non incluses dans le fichier d'entrée.
Par exemple, l'instruction suivante affecte aux deux premières colonnes de
table1
les valeurs figurant dans les deux premières colonnes du fichier d'entrée, puis affecte à la colonnecolumn3
danstable1
la valeur d'horodatage actuelle.LOAD DATA FROM S3 's3://
amzn-s3-demo-bucket
/data.txt' INTO TABLE table1 (column1, column2) SET column3 = CURRENT_TIMESTAMP;Vous pouvez utiliser des sous-requêtes dans la partie droite des affectations
SET
. Pour une sous-requête qui renvoie une valeur devant être assignée à une colonne, vous pouvez utiliser uniquement une sous-requête scalaire. En outre, vous ne pouvez pas utiliser une sous-requête pour sélectionner dans la table qui est en cours de chargement.
Vous ne pouvez pas utiliser le mot-clé LOCAL
de l'instruction LOAD DATA FROM S3
si vous chargez des données à partir d'un compartiment Amazon S3.
Utilisation d'un manifeste pour spécifier les fichiers de données à charger
Vous pouvez utiliser l'LOAD DATA FROM S3
instruction associée au MANIFEST
mot-clé pour spécifier un fichier manifeste au JSON format répertoriant les fichiers texte à charger dans une table de votre cluster de bases de données.
Le JSON schéma suivant décrit le format et le contenu d'un fichier manifeste.
{ "$schema": "http://json-schema.org/draft-04/schema#", "additionalProperties": false, "definitions": {}, "id": "Aurora_LoadFromS3_Manifest", "properties": { "entries": { "additionalItems": false, "id": "/properties/entries", "items": { "additionalProperties": false, "id": "/properties/entries/items", "properties": { "mandatory": { "default": "false", "id": "/properties/entries/items/properties/mandatory", "type": "boolean" }, "url": { "id": "/properties/entries/items/properties/url", "maxLength": 1024, "minLength": 1, "type": "string" } }, "required": [ "url" ], "type": "object" }, "type": "array", "uniqueItems": true } }, "required": [ "entries" ], "type": "object" }
Chaque url
élément du manifeste doit spécifier un URL avec le nom du compartiment et le chemin complet de l'objet du fichier, et pas simplement un préfixe. Vous pouvez utiliser un manifeste pour charger les fichiers de différents compartiments, différentes régions ou les fichiers qui ne partagent pas le même préfixe. Si aucune région n'est spécifiée dans leURL, la région du cluster de base de données Aurora cible est utilisée. L'exemple suivant illustre un fichier manifeste qui charge quatre fichiers à partir de trois compartiments différents.
{ "entries": [ { "url":"s3://aurora-bucket/2013-10-04-customerdata", "mandatory":true }, { "url":"s3-us-west-2://aurora-bucket-usw2/2013-10-05-customerdata", "mandatory":true }, { "url":"s3://aurora-bucket/2013-10-04-customerdata", "mandatory":false }, { "url":"s3://aurora-bucket/2013-10-05-customerdata" } ] }
L'indicateur facultatif mandatory
spécifie si LOAD DATA FROM S3
doit renvoyer une erreur si le fichier est introuvable. L'indicateur mandatory
est défini par défaut sur false
. Quels que soient les paramètres de mandatory
, LOAD DATA FROM S3
s'arrête si aucun fichier n'est trouvé.
Les fichiers manifestes peuvent avoir n'importe quelle extension. L'exemple suivant exécute l'instruction LOAD DATA FROM S3
avec le manifeste de l'exemple précédent, qui s'appelle customer.manifest
.
LOAD DATA FROM S3 MANIFEST 's3-us-west-2://aurora-bucket/customer.manifest' INTO TABLE CUSTOMER FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (ID, FIRSTNAME, LASTNAME, EMAIL);
Une fois l'instruction terminée, une entrée pour chaque fichier chargé avec succès est écrite dans la table aurora_s3_load_history
.
Vérification des fichiers chargés grâce à la table aurora_s3_load_history
Chaque instruction LOAD DATA FROM S3
réussie met à jour la table aurora_s3_load_history
dans le schéma mysql
avec une entrée pour chaque fichier chargé.
Après avoir exécuté l'instruction LOAD DATA FROM S3
, vous pouvez vérifier quels fichiers ont été chargés en interrogeant la table aurora_s3_load_history
. Pour voir les fichiers chargés à la suite d'une itération de l'instruction, utilisez la WHERE
clause pour filtrer les enregistrements sur Amazon S3 URI en fonction du fichier manifeste utilisé dans l'instruction. Si vous avez utilisé le même fichier manifeste auparavant, filtrez les résultats grâce au champ timestamp
.
select * from mysql.aurora_s3_load_history where load_prefix = '
S3_URI
';
La table suivante décrit les champs dans la table aurora_s3_load_history
.
Champ | Description |
---|---|
|
Le URI qui a été spécifié dans l'instruction de chargement. Cela URI peut correspondre à n'importe lequel des éléments suivants :
|
|
Nom d'un fichier chargé dans Aurora depuis Amazon S3 à l'aide de l'identifiant URI indiqué dans le |
|
Le numéro de version du fichier identifié par le champ |
|
La taille du fichier chargé en octets. |
|
La valeur d'horodatage lorsque l'instruction |
Exemples
L'instruction suivante charge les données d'un compartiment Amazon S3 situé dans la même région que le cluster de base de données Aurora. L'instruction lit les données séparées par des virgules dans le fichier customerdata.txt
qui se trouve dans le amzn-s3-demo-bucket
Compartiment Amazon S3, puis charge les données dans la tablestore-schema.customer-table
.
LOAD DATA FROM S3 's3://
amzn-s3-demo-bucket
/customerdata.csv' INTO TABLE store-schema.customer-table FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (ID, FIRSTNAME, LASTNAME, ADDRESS, EMAIL, PHONE);
L'instruction suivante charge les données d'un compartiment Amazon S3 situé dans une région différente du cluster de base de données Aurora. L'instruction lit les données séparées par des virgules dans tous les fichiers qui correspondent au préfixe d'employee-data
objet dans le amzn-s3-demo-bucket
Compartiment Amazon S3 dans la us-west-2
région, puis charge les données dans la employees
table.
LOAD DATA FROM S3 PREFIX 's3-us-west-2://
amzn-s3-demo-bucket
/employee_data' INTO TABLE employees FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (ID, FIRSTNAME, LASTNAME, EMAIL, SALARY);
L'instruction suivante charge les données des fichiers spécifiés dans un fichier JSON manifeste nommé q1_sales.json dans la table. sales
LOAD DATA FROM S3 MANIFEST 's3-us-west-2://
amzn-s3-demo-bucket1
/q1_sales.json' INTO TABLE sales FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (MONTH, STORE, GROSS, NET);
LOADXMLFROMS3
Vous pouvez utiliser LOAD XML FROM S3
cette instruction pour charger des données à partir de XML fichiers stockés dans un compartiment Amazon S3 dans l'un des trois XML formats suivants :
-
Les noms de colonnes en tant qu'attributs d'un élément
<row>
. La valeur d'attribut identifie le contenu du champ de table.<row column1="value1" column2="value2" .../>
-
Les noms de colonnes en tant qu'éléments enfants d'un élément
<row>
. La valeur de l'élément enfant identifie le contenu du champ de table.<row> <column1>value1</column1> <column2>value2</column2> </row>
-
Les noms de colonnes dans l'attribut
name
des éléments<field>
dans un élément<row>
. La valeur de l'élément<field>
identifie le contenu du champ de table.<row> <field name='column1'>value1</field> <field name='column2'>value2</field> </row>
Syntaxe
LOAD XML FROM S3 '
S3-URI
' [REPLACE | IGNORE] INTO TABLEtbl_name
[PARTITION (partition_name,...)] [CHARACTER SET charset_name] [ROWS IDENTIFIED BY '<element-name>
'] [IGNOREnumber
{LINES | ROWS}] [(field_name_or_user_var,...)] [SET col_name = expr,...]
Paramètres
L'instruction LOAD XML FROM S3
utilise les paramètres obligatoires et facultatifs suivants. Vous trouverez plus de détails sur certains de ces paramètres dans la section LOADXMLStatement
- FILE | PREFIX
-
Indique si les données doivent être chargées à partir d'un seul fichier ou à partir de tous les fichiers qui correspondent à un préfixe donné.
FILE
est la valeur par défaut. - REPLACE | IGNORE
-
Détermine l'action à effectuer si une ligne d'entrée a les mêmes valeurs de clé uniques qu'une ligne existante dans la table de base de données.
-
Spécifiez
REPLACE
si vous souhaitez que la ligne d'entrée remplace la ligne existante dans la table. -
Spécifiez
IGNORE
si vous voulez ignorer la ligne d'entrée.IGNORE
est la valeur par défaut.
-
- INTO TABLE
-
Identifie le nom de la table de base de données dans laquelle charger les lignes d'entrée.
- PARTITION
-
Exige que toutes les lignes d'entrée soient insérées dans les partitions identifiées par la liste spécifiée de noms de partition séparés par des virgules. Si une ligne d'entrée ne peut pas être insérée dans l'une des partitions spécifiées, l'instruction échoue et une erreur est renvoyée.
- CHARACTER SET
-
Identifie le jeu de caractères des données du fichier d'entrée.
- ROWSIDENTIFIEDPAR
-
Identifie le nom d'élément qui identifie une ligne dans le fichier d'entrée. L’argument par défaut est
<row>
. - IGNORE
number
LINES | ROWS -
Indique qu'un certain nombre de lignes au début du fichier d'entrée doivent être ignorées. Par exemple, vous pouvez
IGNORE 1 LINES
ignorer la première ligne du fichier texte ouIGNORE 2 ROWS
les deux premières lignes de données de l'entréeXML. - field_name_or_user_var, ...
-
Spécifie une liste séparée par des virgules d'un ou plusieurs noms d'XMLéléments ou variables utilisateur qui identifient les éléments à charger par nom. Le nom d'une variable utilisateur utilisée à cette fin doit correspondre au nom d'un élément du XML fichier, préfixé par @. Vous pouvez utiliser les variables utilisateur pour stocker les valeurs de champ correspondantes pour une réutilisation ultérieure.
Par exemple, l'instruction suivante charge la première colonne du fichier d'entrée dans la première colonne de
table1
et affecte à la colonnetable_column2
danstable1
la valeur d'entrée de la deuxième colonne divisée par 100.LOAD XML FROM S3 's3://
amzn-s3-demo-bucket
/data.xml' INTO TABLE table1 (column1, @var1) SET table_column2 = @var1/100; - SET
-
Spécifie la liste séparée par des virgules des opérations d'affectation qui attribuent aux colonnes de la table des valeurs non incluses dans le fichier d'entrée.
Par exemple, l'instruction suivante affecte aux deux premières colonnes de
table1
les valeurs figurant dans les deux premières colonnes du fichier d'entrée, puis affecte à la colonnecolumn3
danstable1
la valeur d'horodatage actuelle.LOAD XML FROM S3 's3://
amzn-s3-demo-bucket
/data.xml' INTO TABLE table1 (column1, column2) SET column3 = CURRENT_TIMESTAMP;Vous pouvez utiliser des sous-requêtes dans la partie droite des affectations
SET
. Pour une sous-requête qui renvoie une valeur devant être assignée à une colonne, vous pouvez utiliser uniquement une sous-requête scalaire. De plus, vous ne pouvez pas utiliser une sous-requête pour effectuer une sélection dans la table qui est en cours de chargement.