Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

291
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda