Cette page explique comment importer un fichier CSV dans une base de données AlloyDB.
La procédure d'importation implique les tâches suivantes:
Importez le fichier CSV dans un bucket Cloud Storage.
Préparer un hôte client pour effectuer l'opération d'importation
Importez le fichier CSV dans la base de données.
Nettoyez les ressources créées pour effectuer la procédure.
Avant de commencer
- Vous devez disposer du rôle IAM de base "Propriétaire" (
roles/owner
) ou "Éditeur" (roles/editor
) dans le projet Google Cloud que vous utilisez, ou des rôles IAM prédéfinis suivants :- Administrateur AlloyDB (
roles/alloydb.admin
) ou Lecteur AlloyDB (roles/alloydb.viewer
) - Administrateur de l'espace de stockage (
roles/storage.admin
) - Administrateur d'instances Compute (v1) (
roles/compute.instanceAdmin.v1
)
- Administrateur AlloyDB (
Importer le fichier CSV
Pour importer le fichier CSV, créez un bucket Cloud Storage, puis importez-y le fichier CSV.
Créez un bucket de stockage régional pour le stockage standard dans le projet et la région où se trouve votre base de données AlloyDB.
Importez le fichier CSV dans le bucket de stockage que vous avez créé.
Préparer un hôte client
Pour préparer un hôte client à effectuer l'opération d'importation, vous devez créer une VM Compute Engine pouvant se connecter à l'instance principale AlloyDB où se trouve votre base de données, puis installer l'outil psql
et la Google Cloud CLI sur cette VM.
Suivez les instructions de la section Connecter un client psql à une instance pour créer une VM Compute Engine avec la connectivité appropriée et l'outil
psql
installé. Lorsque vous suivez ces instructions, veillez à allouer suffisamment d'espace de stockage local à la VM Compute Engine pour accueillir le fichier CSV que vous importez.Installez gcloud CLI pour fournir un accès en ligne de commande au fichier CSV dans le bucket Cloud Storage.
Importer le fichier CSV
Pour importer le fichier CSV, vous devez obtenir l'adresse IP de l'instance principale AlloyDB où se trouve votre base de données, puis utiliser l'outil psql
pour créer une table contenant les données CSV, puis l'importer.
- Obtenez l'adresse IP de l'instance principale AlloyDB où se trouve votre base de données en affichant ses détails.
- Connectez-vous en SSH à la VM Compute Engine.
Console
- Dans la console Google Cloud, accédez à la page Instances de VM.
- Dans la liste des instances de machine virtuelle, cliquez sur SSH sur la ligne de l'instance que vous avez créée.
gcloud
Utilisez la commande
gcloud compute ssh
pour vous connecter à l'instance que vous avez créée.gcloud compute ssh --project=PROJECT_ID --zone=ZONE VM_NAME
Remplacez les éléments suivants :
PROJECT_ID
: identifiant du projet contenant l'instance.ZONE
: nom de la zone dans laquelle se trouve l'instance.VM_NAME
: nom de l'instance
- Copiez le fichier CSV dans le système de fichiers local de l'hôte client:
gcloud storage cp gs://BUCKET_NAME/CSV_FILE_NAME .
- Importez le fichier CSV :
- Exécutez l'outil client
psql
, puis, à l'invite psql, connectez-vous à la base de données:psql -h IP_ADDRESS -U postgres \c DB_NAME
Vous êtes invité à saisir le mot de passe de l'utilisateur
postgres
.IP_ADDRESS
: adresse IP de l'instance principale.DB_NAME
: nom de la base de données dans laquelle vous souhaitez stocker les données CSV.
- Créez une table pour contenir les données CSV:
CREATE TABLE weather ( city varchar(80), temp_lo int, temp_hi int, prcp real, date date );
L'instruction
CREATE TABLE
ci-dessus est à des fins d'illustration uniquement. Vous créez un tableau dont les colonnes correspondent à vos données CSV. - Importez les données du fichier CSV:
\copy TABLE_NAME(COLUMN_LIST) FROM 'CSV_FILE_NAME' DELIMITER ',' CSV HEADER ;
TABLE_NAME
: nom de la table que vous avez créée à l'étape précédente.(COLUMN_LIST)
: liste des noms des colonnes de la table dans lesquelles importer les données, séparés par une virgule, dans l'ordre dans lequel les données apparaissent dans le fichier CSV.CSV_FILE_NAME
: fichier CSV.HEADER
: indique que le fichier CSV contient une ligne d'en-tête à ignorer. Si ce n'est pas le cas, omettez ce paramètre.
La commande
\copy
danspsql
utilise les mêmes options et arguments que la commandeCOPY
de PostgreSQL pour contrôler l'opération d'importation de données. - Exécutez l'outil client
Effectuer un nettoyage des ressources
Une fois le fichier CSV importé, vous pouvez supprimer le bucket Cloud Storage et la VM Compute Engine que vous avez utilisée lors de la procédure d'importation.