Class: DataDrain::Engine
- Inherits:
-
Object
- Object
- DataDrain::Engine
- Includes:
- Observability, Observability::Timing
- Defined in:
- lib/data_drain/engine.rb
Overview
Motor principal de extracción y purga de datos (DataDrain).
Orquesta el flujo ETL desde PostgreSQL hacia un Data Lake analítico delegando la interacción del almacenamiento al adaptador configurado.
Constant Summary
Constants included from Observability
Observability::SENSITIVE_KEY_PATTERN
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(options) ⇒ Engine
constructor
Inicializa una nueva instancia del motor de extracción.
Constructor Details
#initialize(options) ⇒ Engine
Inicializa una nueva instancia del motor de extracción.
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/data_drain/engine.rb', line 27 def initialize() @start_date = .fetch(:start_date).beginning_of_day @end_date = .fetch(:end_date).to_date.next_day.beginning_of_day @table_name = .fetch(:table_name) Validations.validate_identifier!(:table_name, @table_name) @folder_name = .fetch(:folder_name, @table_name) @select_sql = .fetch(:select_sql, "*") @partition_keys = .fetch(:partition_keys) @primary_key = .fetch(:primary_key, "id") Validations.validate_identifier!(:primary_key, @primary_key) @where_clause = [:where_clause] @bucket = [:bucket] @skip_export = .fetch(:skip_export, false) @config = DataDrain.configuration @config.validate_for_engine! @logger = @config.logger @adapter = DataDrain::Storage.adapter database = DuckDB::Database.open(":memory:") @duckdb = database.connect end |
Instance Method Details
#call ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/data_drain/engine.rb', line 53 def call @durations = {} start_time = monotonic log_start setup_duckdb return skip_empty(start_time) if step_count.zero? if @skip_export safe_log(:info, "engine.skip_export", { table: @table_name }) else step_export end return integrity_failed(start_time) unless step_verify step_purge log_complete(start_time) true end |