Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

292
Views
Cómo importar BLOB formateado como CSV a postgres

Tengo un archivo csv que es una salida de una tienda BLOB. El csv contiene 6 tablas relacionadas. No todos los registros utilizan las 6 tablas, pero todos los registros usan la tabla 1. Me gustaría importar la tabla 1 a postgres. Los datos se describen de la siguiente manera

Los archivos son archivos de texto ASCII que comprenden campos de longitud variable delimitados por un asterisco. Los archivos tienen una extensión de “csv”. Los registros están separados por un retorno de carro/avance de línea. Ningún elemento de datos debe contener un asterisco.

Se proporciona más información en el acuerdo técnico.

Arreglo técnico

La disposición técnica de nuestros datos resumidos es la siguiente: Los campos están en el orden exacto en que aparecen en esta especificación de archivo. Los registros se dividen en tipos. Cada Tipo representa una parte diferente del registro. Cada registro comenzará con los datos del tipo '01'. Para cada tipo de registro '01', hay uno o más registros del tipo '02' que contienen datos de elementos de línea de la encuesta. Puede haber cero o más tipos de registro '03' y '06'. Puede haber cero o uno de los tipos de registro '04' y '05'. Si existe un tipo de registro '06', habrá un tipo de registro '07'. El final de un registro solo se indica mediante la siguiente fila de datos de tipo '01' o el final del archivo. Debe usar esta información para leer el archivo en estructuras de datos formales.

Soy nuevo en las bases de datos y quiero saber cómo abordar esto, entiendo que postgres tiene conectores python y java que a su vez tienen formas de leer datos de blob. ¿Es ese el mejor enfoque?

EDITAR Datos de muestra, una entrada que comprende 2 tipos de registros y luego 1 que contiene los 7 tipos de registros;

 01*15707127000*8227599000*0335*The Occupier*3****MARKET STREET**BRACKNELL*BERKS*RG12 1JG*290405*Shop And Premises*60.71*14872*14872*14750*2017*Bracknell Forest*00249200003001*20994339144*01-APR-2017**249*NIA*330.00 02*1*Ground*Retail Zone A*29.42*330.00*9709 02*2*Ground*Retail Zone B*31.29*165.00*5163 01*15707136000*492865165*0335**7-8****CHARLES SQUARE**BRACKNELL*BERKS*RG12 1DF*290405*Shop And Premises*325.10*34451*32921*32750*2017*Bracknell Forest*00215600007806*21012750144*01-APR-2017**249*NIA*260.00 02*1*Ground*Retail Zone A*68.00*260.00*17680 02*2*Ground*Remaining Retail Zone*83.50*32.50*2714 02*3*Ground*Office*7.30*26.00*190 02*4*First*Locker Room (Female)*3.20*13.00*42 02*5*First*Locker Room (Male)*5.80*13.00*75 02*6*First*Mess/Staff Room*11.50*13.00*150 02*7*Ground*Internal Storage*7.80*26.00*203 02*8*Ground*Retail Zone B*68.10*130.00*8853 02*9*Ground*Retail Zone C*69.90*65.00*4544 03*Air Conditioning System*289.5*7.00*+2027 06*Divided or split unit*-5.00% 06*Double unit*-5.00% 07*36478*-3557`
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Copie el archivo de texto en una tabla auxiliar con una sola columna de texto:

 drop table if exists text_buffer; create table text_buffer(text_row text); copy text_buffer from '/data/my_file.csv';

Transforme la columna de texto en una matriz de texto omitiendo las filas que no necesita. Podrá seleccionar cualquier elemento como una nueva columna con un nombre y tipo determinado, por ejemplo:

 select cols[2]::bigint as bigint1, cols[3]::bigint as bigint2, cols[4]::text as text1, cols[5]::text as text2 -- specify name and type of any column you need from text_buffer, lateral string_to_array(text_row, '*') cols -- transform text column to text array where left(text_row, 2) = '01'; -- get only rows for table1 bigint1 | bigint2 | text1 | text2 -------------+------------+-------+-------------- 15707127000 | 8227599000 | 0335 | The Occupier 15707136000 | 492865165 | 0335 | (2 rows)
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!