Class: Samidare::EmbulkUtility::ConfigGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/samidare/embulk_utility.rb

Instance Method Summary collapse

Constructor Details

#initialize(bq_config) ⇒ ConfigGenerator

Returns a new instance of ConfigGenerator.



9
10
11
# File 'lib/samidare/embulk_utility.rb', line 9

def initialize(bq_config)
  @bq_config = bq_config.dup
end

Instance Method Details

#generate_configObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/samidare/embulk_utility.rb', line 13

def generate_config
  db_infos = EmbulkUtility::DBInfo.generate_db_infos
  table_infos = EmbulkUtility::TableInfo.generate_table_infos
  bq_utility = BigQueryUtility.new(@bq_config)

  db_infos.keys.each do |db_name|
    db_info = db_infos[db_name]
    table_info = table_infos[db_name]
    mysql_client = EmbulkUtility::MySQLClient.new(db_info)

    table_info.each do |table|
      write(
        "#{@bq_config['schema_dir']}/#{db_name}",
        "#{table.name}.json",
        mysql_client.generate_bq_schema(table.name)
      )
      write(
        "#{@bq_config['config_dir']}/#{db_name}",
        "#{table.name}.yml",
        bq_utility.generate_embulk_config(db_name, db_info, table, mysql_client.column_infos(table.name))
      )
    end
  end
end