Skip to main content

Incremental load to database

Project description

📦 LoadData & DataContractValidator

Este módulo proporciona utilidades para:

  • Carga de datos en PostgreSQL
  • Generación de identificadores únicos
  • Validación de contratos de datos
  • Manejo de fechas

🧱 Clase: LoadData

Clase principal para gestionar la carga de datos en base de datos PostgreSQL.

🔌 enginepsql()

Crea y devuelve un engine de conexión a PostgreSQL usando variables de entorno:

  • USUARIO
  • PASSWORD
  • HOSTNAME
  • PORT
  • DATABASE

🧹 truncate_table(schema, table)

Trunca una tabla sin eliminar su estructura:

  • Desactiva triggers (FKs)
  • Ejecuta TRUNCATE
  • Reactiva triggers

🆔 unique_id_()

Genera un identificador único (unique_id) para cada fila del DataFrame:

  • Usa columnas definidas en uid_cols
  • Limpia strings (lowercase, sin acentos ni caracteres especiales)
  • Genera hash SHA256 → entero int64

📥 load_all_data(...)

Carga datos en PostgreSQL.

Parámetros:

  • input_table: DataFrame a cargar
  • output_table: schema.table
  • uid_cols: columnas para generar ID único
  • uid_need: columna ya existente como ID
  • truncate: si True, borra la tabla antes

Comportamiento:

  • 🔁 Carga incremental (default):

    • Genera unique_id
    • Convierte datos a polars
    • Realiza anti-join para evitar duplicados
  • 🧨 Carga completa (truncate=True):

    • Trunca tabla
    • Inserta todos los datos
  • 🆕 Si la tabla no existe:

    • La crea automáticamente

📊 reportar_datos_aniadidos()

Imprime en consola el número de filas insertadas:

{"datos_aniadidos": X}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

loaddata-1.1.0.tar.gz (7.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

loaddata-1.1.0-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file loaddata-1.1.0.tar.gz.

File metadata

  • Download URL: loaddata-1.1.0.tar.gz
  • Upload date:
  • Size: 7.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for loaddata-1.1.0.tar.gz
Algorithm Hash digest
SHA256 a7b9772f8d5e5e9a934adeda6bd53cd3e1220bda71a53f22e1a96ba5c2a91ad6
MD5 564d2b9e3f9a57aa65b0928fb9b7a1e9
BLAKE2b-256 692f804f4ecec3566fe8eac1276ad7126412fa4ee57390fe3aef30009167dc42

See more details on using hashes here.

File details

Details for the file loaddata-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: loaddata-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for loaddata-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fa21a2d1a33d4a9965eb71dd004136bc8b94a46a5bd8b395a07bf0d64132b53c
MD5 83a135d33b3eb3201e07b6ce593b1375
BLAKE2b-256 cf64f31221afecb4e508db77f863b780a713da137fbfcb1ed1c6dc09b97200a7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page