Class: DataDrain::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/data_drain/configuration.rb

Overview

Contenedor para todas las opciones de configuración del motor DataDrain.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/data_drain/configuration.rb', line 17

def initialize
  @storage_mode   = :local
  @db_host        = "127.0.0.1"
  @db_port        = 5432
  @batch_size     = 5000
  @throttle_delay = 0.5
  @limit_ram      = nil # eg 2GB
  @tmp_directory  = nil # eg /tmp/duckdb_work
  @idle_in_transaction_session_timeout = 0
  @vacuum_after_purge = false
  @slow_batch_threshold_s = 30
  @slow_batch_alert_after = 5
  @logger = Logger.new($stdout)
end

Instance Attribute Details

#aws_access_key_idObject

Returns the value of attribute aws_access_key_id.



8
9
10
# File 'lib/data_drain/configuration.rb', line 8

def aws_access_key_id
  @aws_access_key_id
end

#aws_regionObject

Returns the value of attribute aws_region.



8
9
10
# File 'lib/data_drain/configuration.rb', line 8

def aws_region
  @aws_region
end

#aws_secret_access_keyObject

Returns the value of attribute aws_secret_access_key.



8
9
10
# File 'lib/data_drain/configuration.rb', line 8

def aws_secret_access_key
  @aws_secret_access_key
end

#batch_sizeObject

Returns the value of attribute batch_size.



8
9
10
# File 'lib/data_drain/configuration.rb', line 8

def batch_size
  @batch_size
end

#db_hostObject

Returns the value of attribute db_host.



8
9
10
# File 'lib/data_drain/configuration.rb', line 8

def db_host
  @db_host
end

#db_nameObject

Returns the value of attribute db_name.



8
9
10
# File 'lib/data_drain/configuration.rb', line 8

def db_name
  @db_name
end

#db_passObject

Returns the value of attribute db_pass.



8
9
10
# File 'lib/data_drain/configuration.rb', line 8

def db_pass
  @db_pass
end

#db_portObject

Returns the value of attribute db_port.



8
9
10
# File 'lib/data_drain/configuration.rb', line 8

def db_port
  @db_port
end

#db_userObject

Returns the value of attribute db_user.



8
9
10
# File 'lib/data_drain/configuration.rb', line 8

def db_user
  @db_user
end

#idle_in_transaction_session_timeoutObject

Returns the value of attribute idle_in_transaction_session_timeout.



8
9
10
# File 'lib/data_drain/configuration.rb', line 8

def idle_in_transaction_session_timeout
  @idle_in_transaction_session_timeout
end

#limit_ramObject

Returns the value of attribute limit_ram.



8
9
10
# File 'lib/data_drain/configuration.rb', line 8

def limit_ram
  @limit_ram
end

#loggerObject

Returns the value of attribute logger.



8
9
10
# File 'lib/data_drain/configuration.rb', line 8

def logger
  @logger
end

#slow_batch_alert_afterObject

Returns the value of attribute slow_batch_alert_after.



8
9
10
# File 'lib/data_drain/configuration.rb', line 8

def slow_batch_alert_after
  @slow_batch_alert_after
end

#slow_batch_threshold_sObject

Returns the value of attribute slow_batch_threshold_s.



8
9
10
# File 'lib/data_drain/configuration.rb', line 8

def slow_batch_threshold_s
  @slow_batch_threshold_s
end

#storage_modeObject

Returns the value of attribute storage_mode.



8
9
10
# File 'lib/data_drain/configuration.rb', line 8

def storage_mode
  @storage_mode
end

#throttle_delayObject

Returns the value of attribute throttle_delay.



8
9
10
# File 'lib/data_drain/configuration.rb', line 8

def throttle_delay
  @throttle_delay
end

#tmp_directoryObject

Returns the value of attribute tmp_directory.



8
9
10
# File 'lib/data_drain/configuration.rb', line 8

def tmp_directory
  @tmp_directory
end

#vacuum_after_purgeObject

Returns the value of attribute vacuum_after_purge.



8
9
10
# File 'lib/data_drain/configuration.rb', line 8

def vacuum_after_purge
  @vacuum_after_purge
end

Instance Method Details

#duckdb_connection_stringString

Returns Cadena de conexión optimizada para DuckDB.

Returns:

  • (String)

    Cadena de conexión optimizada para DuckDB.



33
34
35
# File 'lib/data_drain/configuration.rb', line 33

def duckdb_connection_string
  "postgresql://#{@db_user}:#{@db_pass}@#{@db_host}:#{@db_port}/#{@db_name}?options=-c%20idle_in_transaction_session_timeout%3D#{@idle_in_transaction_session_timeout}"
end

#validate!Object

Valida invariantes generales (storage_mode + AWS si aplica). Llamado por FileIngestor#initialize y GlueRunner.run_and_wait.



41
42
43
44
# File 'lib/data_drain/configuration.rb', line 41

def validate!
  validate_storage_mode!
  validate_aws_config! if storage_mode.to_sym == :s3
end

#validate_for_engine!Object

Valida además las credenciales PostgreSQL. Llamado por Engine#initialize.



50
51
52
53
# File 'lib/data_drain/configuration.rb', line 50

def validate_for_engine!
  validate!
  validate_db_config!
end