Class: DataDrain::Storage::Local
- Defined in:
- lib/data_drain/storage/local.rb
Overview
Implementación del adaptador de almacenamiento para el disco local.
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
- #build_path(bucket, folder_name, partition_path) ⇒ String
- #destroy_partitions(bucket, folder_name, partition_keys, partitions) ⇒ Integer
-
#prepare_export_path(bucket, folder_name) ⇒ Object
Crea la jerarquía de carpetas en el disco si no existe.
-
#setup_duckdb(connection) ⇒ Object
(DuckDB ya soporta archivos locales de forma nativa, no requiere extensiones extras).
Methods inherited from Base
Constructor Details
This class inherits a constructor from DataDrain::Storage::Base
Instance Method Details
#build_path(bucket, folder_name, partition_path) ⇒ String
26 27 28 29 30 |
# File 'lib/data_drain/storage/local.rb', line 26 def build_path(bucket, folder_name, partition_path) base = File.join(bucket, folder_name) base = File.join(base, partition_path) if partition_path && !partition_path.empty? "#{base}/**/*.parquet" end |
#destroy_partitions(bucket, folder_name, partition_keys, partitions) ⇒ Integer
37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/data_drain/storage/local.rb', line 37 def destroy_partitions(bucket, folder_name, partition_keys, partitions) path_parts = partition_keys.map do |key| val = partitions[key] val.nil? || val.to_s.empty? ? "#{key}=*" : "#{key}=#{val}" end pattern = File.join(bucket, folder_name, path_parts.join("/")) folders_to_delete = Dir.glob(pattern) return 0 if folders_to_delete.empty? folders_to_delete.each { |folder| FileUtils.rm_rf(folder) } folders_to_delete.size end |
#prepare_export_path(bucket, folder_name) ⇒ Object
Crea la jerarquía de carpetas en el disco si no existe.
18 19 20 |
# File 'lib/data_drain/storage/local.rb', line 18 def prepare_export_path(bucket, folder_name) FileUtils.mkdir_p(File.join(bucket, folder_name)) end |
#setup_duckdb(connection) ⇒ Object
(DuckDB ya soporta archivos locales de forma nativa, no requiere extensiones extras)
11 12 13 |
# File 'lib/data_drain/storage/local.rb', line 11 def setup_duckdb(connection) # No-op end |