Introducción
Un archivo de valores separados por comas (CSV) es un archivo de texto sin formato que almacena datos en formato tabular. Por lo general, los archivos CSV comparten datos entre aplicaciones de hojas de cálculo y sistemas de bases de datos. Los archivos CSV separan los valores de los campos y los registros mediante comas y caracteres de nueva línea. Al implementar bases de datos PostgreSQL, puede importar fácilmente datos de archivos CSV usando el COPY
dominio. Él COPY
El comando está disponible desde el psql
paquete. Esta guía le muestra cómo copiar datos CSV del servidor Ubuntu 20.04 a un clúster de base de datos PostgreSQL administrado.
requisitos previos
Para continuar con esta guía:
-
Configure un servidor Ubuntu 20.04.
-
Crear un no root
sudo
usuario. -
Aprovisione un clúster de base de datos de PostgreSQL administrado.
-
Inicie sesión en su cuenta Vultr. Navegar a Productos después bases de datos . Haga clic en el nombre del clúster de la base de datos de PostgreSQL debajo del Nombre de la base de datos administrada . Navegar a la Descripción general tabula y localiza Detalles de conexión . Esta guía utiliza los siguientes detalles de conexión de muestra:
-
nombre de usuario :
vultradmin
-
clave :
EXAMPLE_POSTGRESQL_PASSWORD
-
anfitrión :
SAMPLE_POSTGRESQL_DB_HOST_STRING.vultrdb.com
-
puerto :
16751
-
1. Cree un archivo CSV de muestra
En esta guía, debe crear un archivo CSV de muestra. Cuando trabaje en un entorno de producción, puede generar el archivo CSV automáticamente desde aplicaciones de hojas de cálculo u otros sistemas de bases de datos. Siga los pasos a continuación para crear el archivo de muestra:
-
SSH a su servidor y abra una nueva
products.csv
archivo en un editor de texto.$ nano products.csv
-
Enter la siguiente información en el
products.csv
expediente.product_id,product_name,retail_price,available,created_on 1,20L FOUNTAIN MINERAL WATER,5.25,Y,2022-12-12 2,QUARTZ WALL CLOCK,30.20,N,2022-12-10 3,RECHARGEABLE LED LAMP,14.40,Y,2022-12-08 4,TYPE C 30W CHARGER,29.95,Y,2022-12-10 5,DOUBLE SIDED TAPE,3.45,N,2022-12-12
-
Guardar y close el
products.csv
expediente.
Después de configurar el archivo CSV, continúe con el siguiente paso para copiar datos en un clúster de base de datos de PostgreSQL.
2. Copiar datos en un clúster de base de datos PostgreSQL
Para importar datos a un clúster de base de datos PostgreSQL administrado desde CSV, debe seguir los pasos a continuación:
-
Inicie sesión en un clúster de base de datos de PostgreSQL administrado.
-
Crear una base de datos.
-
Cree una estructura de tabla en la base de datos PostgreSQL de destino que coincida con los tipos de datos de los campos del archivo CSV.
-
Usar el servidor PostgreSQL
COPY
Comando para cargar datos CSV en la tabla.
2.1. Inicie sesión en el clúster de base de datos de PostgreSQL administrado
-
Instala el
postgresql-client
paquete. Este paquete le permite usar PostgreSQLpsql
comando desde el servidor Linux.$ sudo apt update $ sudo apt install -y postgresql-client
-
Ejecute lo siguiente
psql
comando para iniciar sesión en el clúster de PostgreSQL administrado. Reemplace la-h
(anfitrión),-p
(puerto), y-U
(nombre de usuario) valores con las credenciales correctas.$ psql -h SAMPLE_POSTGRESQL_DB_HOST_STRING.vultrdb.com -p 16751 -U vultradmin defaultdb
-
Enter la contraseña para el clúster de la base de datos administrada y presione ENTRAR para continuar.
Producción.
defaultdb=>
-
Crear una muestra
xyz_db
base de datos.defaultdb=> CREATE DATABASE xyz_db;
Producción.
CREATE DATABASE
-
Conéctate a lo nuevo
xyz_db
base de datos.defaultdb=> c xyz_db;
Producción.
psql ... ... You are now connected to database "xyz_db" as user "vultradmin".
Después de crear una base de datos, inicialice la estructura de la tabla en el siguiente paso.
2.2. Crear una estructura de tabla
Después de configurar y conectarse a la base de datos de destino, siga los pasos a continuación para crear una tabla:
-
Coincidir con el
products.csv
los valores de los campos con los tipos de datos de PostgreSQL correctos, como se ilustra en la siguiente lista.+---------------+---------------------+ | Field Name | Data Type | +---------------+---------------------+ | product_id | INTEGER | | product_name | VARCHAR(50) | | retail_price | FLOAT | | available | CHAR(1) | | created_on | DATE | +---------------+---------------------+
-
Utilice el PostgreSQL
CREATE TABLE
Comando para configurar unproducts
mesa.xyz_db=> CREATE TABLE products ( product_id INTEGER PRIMARY KEY, product_name VARCHAR(50), retail_price FLOAT, available CHAR(1), created_on DATE );
Producción.
CREATE TABLE
-
Ejecute el siguiente comando de declaración de descripción contra el
products
tabla para asegurarse de que tiene el esquema correcto.xyz_db=> d products;
Producción.
Column | Type | Collation | Nullable | Default --------------+-----------------------+-----------+----------+--------- product_id | integer | | not null | product_name | character varying(50) | | | retail_price | double precision | | | available | character(1) | | | created_on | date | | | Indexes: "products_pkey" PRIMARY KEY, btree (product_id)
Ahora ha configurado una base de datos de destino y una tabla para los datos. Siga el siguiente paso para cargar datos en la base de datos.
2.3. Utilice el PostgreSQL COPY
Comando para cargar datos
El servidor PostgreSQL COPY
El comando sigue la siguiente sintaxis:
=> COPY SAMPLE_TABLE (SAMPLE_COMMA_SEPARATED_COLUMNS)
FROM 'SAMPLE_ABSOULTE_FILE_PATH'
WITH (SAMPLE_OPTIONS);
Él COPY
sintaxis explicada:
-
El comando comienza con un
COPY
palabra clave. -
Él
SAMPLE_TABLE
es el nombre de la tabla de destino donde desea colocar los datos (por example,products
). -
Él
(SAMPLE_COMMA_SEPARATED_COLUMNS)
es un parámetro opcional que define el orden de las columnas en la tabla de destino. -
Él
FROM 'SAMPLE_ABSOULTE_FILE_PATH'
declaración define la ruta absoluta donde ha colocado su archivo CSV (para example,~/products.csv
). -
Él
WITH (SAMPLE_OPTIONS)
La palabra clave define las opciones que el servidor PostgreSQL debe considerar al ejecutar elCOPY
comando como se ilustra a continuación:-
FORMAT
: Este es el formato de datos de entrada (para example,FORMAT CSV
). -
DELIMITER
: Debe definir el carácter que separa los valores de campo después delDELIMITER
palabra clave (Para example,DELIMITER ','
). -
HEADER
: esta directiva le dice al servidor PostgreSQL si el archivo CSV de entrada sin procesar contiene un encabezado. Si establece este valor en verdadero (HEADER true
), PostgreSQL descarta la primera línea al cargar datos. Sin embargo, si su archivo CSV no contiene ningún encabezado, establezca este valor enfalse
utilizando laHEADER false
declaración para cargar todo en el archivo.
-
Después de entender el PostgreSQL COPY
sintaxis, siga los pasos a continuación para cargar y verificar los datos CSV.
-
Ejecute el siguiente comando para copiar datos del archivo ‘~/products.csv’ en el
products
mesa.xyz_db=> COPY products (product_id, product_name, retail_price, available, created_on) FROM '~/products.csv' WITH (FORMAT CSV, DELIMITER ',', HEADER true);
Producción.
COPY 5
-
consulta el
products
tabla para asegurarse de que los datos están en su lugar.xyz_db=> SELECT product_id product_name, retail_price, available, created_on FROM products;
Producción.
product_name | retail_price | available | created_on --------------+--------------+-----------+------------ 1 | 5.25 | Y | 2022-12-12 2 | 30.2 | N | 2022-12-10 3 | 14.4 | Y | 2022-12-08 4 | 29.95 | Y | 2022-12-10 5 | 3.45 | N | 2022-12-12 (5 rows)
El resultado anterior confirma que cargó correctamente los datos de su archivo CSV en el clúster de base de datos de PostgreSQL administrado.
Conclusión
Esta guía ilustra el proceso de copiar datos de un archivo CSV en un clúster de base de datos PostgreSQL administrado a través del servidor Ubuntu 20.04. Si tiene varios archivos CSV, repita el proceso anterior para cargar todos los archivos en las tablas respectivas.
Consulte las siguientes guías para obtener más información sobre las bases de datos administradas de Vultr:
-
Preguntas frecuentes sobre las bases de datos administradas por Vultr.
-
Bases de datos administradas de Vultr para la guía de referencia de PostgreSQL.
-
Inicio rápido de bases de datos administradas por Vultr.
Título del artículo Nombre (opcional) Correo electrónico (opcional) Descripción
Enviar sugerencia