Class: DataDrain::Storage::Base Abstract
- Inherits:
-
Object
- Object
- DataDrain::Storage::Base
- Defined in:
- lib/data_drain/storage/base.rb
Overview
Interfaz abstracta para los adaptadores de almacenamiento de DataDrain. Define los métodos obligatorios que cada proveedor (Local, S3, etc.) debe implementar para interactuar con DuckDB y el sistema de archivos.
Instance Attribute Summary collapse
-
#config ⇒ DataDrain::Configuration
readonly
Configuración actual del framework.
Instance Method Summary collapse
-
#build_path(bucket, folder_name, partition_path) ⇒ String
Construye la ruta de lectura compatible con la función
read_parquetde DuckDB. -
#destroy_partitions(bucket, folder_name, partition_keys, partitions) ⇒ Integer
Elimina físicamente las particiones que coincidan con los criterios.
-
#initialize(config) ⇒ Base
constructor
Inicializa el adaptador con la configuración proveída.
-
#prepare_export_path(bucket, folder_name) ⇒ Object
Prepara el directorio destino antes de una exportación (ej. crear carpetas).
-
#setup_duckdb(connection) ⇒ Object
Configura las extensiones y credenciales necesarias en la conexión de DuckDB.
Constructor Details
#initialize(config) ⇒ Base
Inicializa el adaptador con la configuración proveída.
17 18 19 |
# File 'lib/data_drain/storage/base.rb', line 17 def initialize(config) @config = config end |
Instance Attribute Details
#config ⇒ DataDrain::Configuration (readonly)
Returns Configuración actual del framework.
12 13 14 |
# File 'lib/data_drain/storage/base.rb', line 12 def config @config end |
Instance Method Details
#build_path(bucket, folder_name, partition_path) ⇒ String
Construye la ruta de lectura compatible con la función read_parquet de DuckDB.
43 44 45 |
# File 'lib/data_drain/storage/base.rb', line 43 def build_path(bucket, folder_name, partition_path) raise NotImplementedError, "#{self.class} debe implementar #build_path" end |
#destroy_partitions(bucket, folder_name, partition_keys, partitions) ⇒ Integer
Elimina físicamente las particiones que coincidan con los criterios.
54 55 56 |
# File 'lib/data_drain/storage/base.rb', line 54 def destroy_partitions(bucket, folder_name, partition_keys, partitions) raise NotImplementedError, "#{self.class} debe implementar #destroy_partitions" end |
#prepare_export_path(bucket, folder_name) ⇒ Object
Prepara el directorio destino antes de una exportación (ej. crear carpetas).
33 34 35 |
# File 'lib/data_drain/storage/base.rb', line 33 def prepare_export_path(bucket, folder_name) # Operación nula por defecto. Las subclases pueden sobreescribirlo. end |
#setup_duckdb(connection) ⇒ Object
Configura las extensiones y credenciales necesarias en la conexión de DuckDB.
25 26 27 |
# File 'lib/data_drain/storage/base.rb', line 25 def setup_duckdb(connection) raise NotImplementedError, "#{self.class} debe implementar #setup_duckdb" end |