Cómo importar datos CSV a bases de datos administradas por Vultr para PostgreSQL

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:

  1. SSH a su servidor y abra una nueva products.csv archivo en un editor de texto.

                              
                                $ nano products.csv
    
                              
                            
  2. 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
    
                              
                            
  3. 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:

  1. Inicie sesión en un clúster de base de datos de PostgreSQL administrado.

  2. Crear una base de datos.

  3. 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.

  4. 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

  1. Instala el postgresql-client paquete. Este paquete le permite usar PostgreSQL psql comando desde el servidor Linux.

                              
                                $ sudo apt update 
    
    $ sudo apt install -y postgresql-client
    
                              
                            
  2. 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
    
                              
                            
  3. Enter la contraseña para el clúster de la base de datos administrada y presione ENTRAR para continuar.

    Producción.

                              
                                defaultdb=>
    
                              
                            
  4. Crear una muestra xyz_db base de datos.

                              
                                defaultdb=> CREATE DATABASE xyz_db;
    
                              
                            

    Producción.

                              
                                CREATE DATABASE
    
                              
                            
  5. 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:

  1. 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                |
    
    +---------------+---------------------+
    
                              
                            
  2. Utilice el PostgreSQL CREATE TABLE Comando para configurar un products 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
    
                              
                            
  3. 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:

  1. El comando comienza con un COPY palabra clave.

  2. Él SAMPLE_TABLE es el nombre de la tabla de destino donde desea colocar los datos (por example, products ).

  3. Él (SAMPLE_COMMA_SEPARATED_COLUMNS) es un parámetro opcional que define el orden de las columnas en la tabla de destino.

  4. Él FROM 'SAMPLE_ABSOULTE_FILE_PATH' declaración define la ruta absoluta donde ha colocado su archivo CSV (para example, ~/products.csv ).

  5. Él WITH (SAMPLE_OPTIONS) La palabra clave define las opciones que el servidor PostgreSQL debe considerar al ejecutar el COPY 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 del DELIMITER 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 en false utilizando la HEADER 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.

  1. 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
    
                              
                            
  2. 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

Related Posts