flydata 0.6.3 → 0.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +2 -2
  3. data/VERSION +1 -1
  4. data/bin/fdredshift +78 -0
  5. data/circle.yml +1 -1
  6. data/ext/flydata/{parser/mysql → source_mysql/parser}/.gitignore +0 -0
  7. data/ext/flydata/{parser/mysql → source_mysql/parser}/dump_parser_ext.cpp +3 -3
  8. data/ext/flydata/source_mysql/parser/extconf.rb +3 -0
  9. data/ext/flydata/{parser/mysql → source_mysql/parser}/parser.txt +0 -0
  10. data/ext/flydata/{parser/mysql → source_mysql/parser}/sql_parser.cpp +0 -0
  11. data/ext/flydata/{parser/mysql → source_mysql/parser}/sql_parser.h +0 -0
  12. data/flydata-core/lib/flydata-core/mysql/binlog_pos.rb +34 -32
  13. data/flydata-core/lib/flydata-core/mysql/compatibility_checker.rb +20 -0
  14. data/flydata-core/lib/flydata-core/table_def/mysql_table_def.rb +12 -4
  15. data/flydata-core/lib/flydata-core/table_def/redshift_table_def.rb +60 -6
  16. data/flydata-core/spec/mysql/binlog_pos_spec.rb +474 -0
  17. data/flydata-core/spec/table_def/mysql_table_def_spec.rb +57 -0
  18. data/flydata-core/spec/table_def/mysql_to_redshift_table_def_spec.rb +174 -20
  19. data/flydata-core/spec/table_def/mysqldump_test_col_comment_with_AUTO_INCREMENT_keyword.dump +43 -0
  20. data/flydata-core/spec/table_def/mysqldump_test_col_comment_with_not_null_keyword.dump +43 -0
  21. data/flydata-core/spec/table_def/mysqldump_test_col_comment_with_unique_keyword.dump +43 -0
  22. data/flydata-core/spec/table_def/mysqldump_test_col_comment_with_unsigned_keyword.dump +43 -0
  23. data/flydata-core/spec/table_def/redshift_table_def_spec.rb +41 -8
  24. data/flydata.gemspec +0 -0
  25. data/lib/flydata/cli.rb +11 -5
  26. data/lib/flydata/command/base.rb +14 -1
  27. data/lib/flydata/command/exclusive_runnable.rb +42 -12
  28. data/lib/flydata/command/helper.rb +6 -6
  29. data/lib/flydata/command/sender.rb +4 -3
  30. data/lib/flydata/command/setup.rb +30 -381
  31. data/lib/flydata/command/stop.rb +1 -0
  32. data/lib/flydata/command/sync.rb +273 -301
  33. data/lib/flydata/compatibility_check.rb +24 -117
  34. data/lib/flydata/fluent-plugins/in_mysql_binlog_flydata.rb +3 -3
  35. data/lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb +2 -2
  36. data/lib/flydata/fluent-plugins/mysql/binlog_record_handler.rb +6 -6
  37. data/lib/flydata/fluent-plugins/mysql/truncate_table_query_handler.rb +0 -1
  38. data/lib/flydata/parser.rb +14 -0
  39. data/lib/flydata/{parser_provider.rb → parser/parser_provider.rb} +6 -4
  40. data/lib/flydata/parser/source_table.rb +33 -0
  41. data/lib/flydata/source.rb +105 -0
  42. data/lib/flydata/source/component.rb +21 -0
  43. data/lib/flydata/source/errors.rb +7 -0
  44. data/lib/flydata/source/generate_source_dump.rb +72 -0
  45. data/lib/flydata/source/parse_dump_and_send.rb +52 -0
  46. data/lib/flydata/source/setup.rb +31 -0
  47. data/lib/flydata/source/source_pos.rb +45 -0
  48. data/lib/flydata/source/sync.rb +56 -0
  49. data/lib/flydata/source/sync_generate_table_ddl.rb +43 -0
  50. data/lib/flydata/source_file/setup.rb +17 -0
  51. data/lib/flydata/source_file/sync.rb +14 -0
  52. data/lib/flydata/{command → source_mysql/command}/mysql.rb +2 -1
  53. data/lib/flydata/{command → source_mysql/command}/mysql_command_base.rb +2 -4
  54. data/lib/flydata/{command → source_mysql/command}/mysqlbinlog.rb +2 -1
  55. data/lib/flydata/{command → source_mysql/command}/mysqldump.rb +2 -1
  56. data/lib/flydata/source_mysql/generate_source_dump.rb +53 -0
  57. data/lib/flydata/source_mysql/mysql_compatibility_check.rb +114 -0
  58. data/lib/flydata/source_mysql/parse_dump_and_send.rb +28 -0
  59. data/lib/flydata/{parser/mysql → source_mysql/parser}/.gitignore +0 -0
  60. data/lib/flydata/{parser/mysql → source_mysql/parser}/dump_parser.rb +32 -67
  61. data/lib/flydata/{parser/mysql → source_mysql/parser}/mysql_alter_table.treetop +0 -0
  62. data/lib/flydata/source_mysql/setup.rb +24 -0
  63. data/lib/flydata/source_mysql/source_pos.rb +21 -0
  64. data/lib/flydata/source_mysql/sync.rb +45 -0
  65. data/lib/flydata/source_mysql/sync_generate_table_ddl.rb +40 -0
  66. data/lib/flydata/{mysql → source_mysql}/table_ddl.rb +6 -17
  67. data/lib/flydata/source_zendesk/sync_generate_table_ddl.rb +30 -0
  68. data/lib/flydata/source_zendesk/zendesk_flydata_tabledefs.rb +133 -0
  69. data/lib/flydata/sync_file_manager.rb +132 -73
  70. data/lib/flydata/table_ddl.rb +18 -0
  71. data/spec/flydata/cli_spec.rb +1 -0
  72. data/spec/flydata/command/exclusive_runnable_spec.rb +19 -8
  73. data/spec/flydata/command/sender_spec.rb +1 -1
  74. data/spec/flydata/command/setup_spec.rb +4 -4
  75. data/spec/flydata/command/sync_spec.rb +97 -134
  76. data/spec/flydata/compatibility_check_spec.rb +16 -289
  77. data/spec/flydata/fluent-plugins/mysql/alter_table_query_handler_spec.rb +3 -3
  78. data/spec/flydata/fluent-plugins/mysql/dml_record_handler_spec.rb +1 -1
  79. data/spec/flydata/fluent-plugins/mysql/shared_query_handler_context.rb +4 -2
  80. data/spec/flydata/fluent-plugins/mysql/truncate_query_handler_spec.rb +1 -1
  81. data/spec/flydata/source_mysql/generate_source_dump_spec.rb +69 -0
  82. data/spec/flydata/source_mysql/mysql_compatibility_check_spec.rb +280 -0
  83. data/spec/flydata/{parser/mysql → source_mysql/parser}/alter_table_parser_spec.rb +2 -2
  84. data/spec/flydata/{parser/mysql → source_mysql/parser}/dump_parser_spec.rb +75 -70
  85. data/spec/flydata/source_mysql/sync_generate_table_ddl_spec.rb +137 -0
  86. data/spec/flydata/{mysql → source_mysql}/table_ddl_spec.rb +2 -2
  87. data/spec/flydata/source_spec.rb +140 -0
  88. data/spec/flydata/source_zendesk/sync_generate_table_ddl_spec.rb +33 -0
  89. data/spec/flydata/sync_file_manager_spec.rb +157 -77
  90. data/tmpl/redshift_mysql_data_entry.conf.tmpl +1 -1
  91. metadata +56 -23
  92. data/ext/flydata/parser/mysql/extconf.rb +0 -3
  93. data/lib/flydata/mysql/binlog_position.rb +0 -22
  94. data/spec/flydata/mysql/binlog_position_spec.rb +0 -35
@@ -9,4 +9,4 @@ mysql_data_entry_preference:
9
9
  #database: dev
10
10
  #tables: users,country,rows
11
11
  #tables_append_only: employees
12
- #mysqldump_dir: /mnt/dump
12
+ #dump_dir: /mnt/dump
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flydata
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.3
4
+ version: 0.6.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Koichi Fujikawa
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2016-01-15 00:00:00.000000000 Z
15
+ date: 2016-01-26 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: rest-client
@@ -468,11 +468,12 @@ description: FlyData Agent
468
468
  email: sysadmin@flydata.com
469
469
  executables:
470
470
  - fdmysqldump
471
+ - fdredshift
471
472
  - flydata
472
473
  - serverinfo
473
474
  extensions:
474
475
  - ext/flydata/json/extconf.rb
475
- - ext/flydata/parser/mysql/extconf.rb
476
+ - ext/flydata/source_mysql/parser/extconf.rb
476
477
  extra_rdoc_files: []
477
478
  files:
478
479
  - .rspec
@@ -486,18 +487,19 @@ files:
486
487
  - benchmark/insert_parser_bench.rb
487
488
  - benchmark/insert_parser_prof.rb
488
489
  - bin/fdmysqldump
490
+ - bin/fdredshift
489
491
  - bin/flydata
490
492
  - bin/serverinfo
491
493
  - circle.yml
492
494
  - ext/flydata/flydata.h
493
495
  - ext/flydata/json/extconf.rb
494
496
  - ext/flydata/json/json_ext.cpp
495
- - ext/flydata/parser/mysql/.gitignore
496
- - ext/flydata/parser/mysql/dump_parser_ext.cpp
497
- - ext/flydata/parser/mysql/extconf.rb
498
- - ext/flydata/parser/mysql/parser.txt
499
- - ext/flydata/parser/mysql/sql_parser.cpp
500
- - ext/flydata/parser/mysql/sql_parser.h
497
+ - ext/flydata/source_mysql/parser/.gitignore
498
+ - ext/flydata/source_mysql/parser/dump_parser_ext.cpp
499
+ - ext/flydata/source_mysql/parser/extconf.rb
500
+ - ext/flydata/source_mysql/parser/parser.txt
501
+ - ext/flydata/source_mysql/parser/sql_parser.cpp
502
+ - ext/flydata/source_mysql/parser/sql_parser.h
501
503
  - flydata-core/.gitignore
502
504
  - flydata-core/.rspec
503
505
  - flydata-core/.travis.yml
@@ -548,6 +550,7 @@ files:
548
550
  - flydata-core/spec/event/shared_event.rb
549
551
  - flydata-core/spec/fluent/config_helper_spec.rb
550
552
  - flydata-core/spec/logger_spec.rb
553
+ - flydata-core/spec/mysql/binlog_pos_spec.rb
551
554
  - flydata-core/spec/mysql/command_generator_spec.rb
552
555
  - flydata-core/spec/mysql/compatibility_checker_spec.rb
553
556
  - flydata-core/spec/mysql/config_spec.rb
@@ -559,6 +562,10 @@ files:
559
562
  - flydata-core/spec/table_def/mysql_table_def_spec.rb
560
563
  - flydata-core/spec/table_def/mysql_to_redshift_table_def_spec.rb
561
564
  - flydata-core/spec/table_def/mysqldump_test_bit_table.dump
565
+ - flydata-core/spec/table_def/mysqldump_test_col_comment_with_AUTO_INCREMENT_keyword.dump
566
+ - flydata-core/spec/table_def/mysqldump_test_col_comment_with_not_null_keyword.dump
567
+ - flydata-core/spec/table_def/mysqldump_test_col_comment_with_unique_keyword.dump
568
+ - flydata-core/spec/table_def/mysqldump_test_col_comment_with_unsigned_keyword.dump
562
569
  - flydata-core/spec/table_def/mysqldump_test_col_name_with_space.dump
563
570
  - flydata-core/spec/table_def/mysqldump_test_column_charset.dump
564
571
  - flydata-core/spec/table_def/mysqldump_test_foreign_key.dump
@@ -593,10 +600,6 @@ files:
593
600
  - lib/flydata/command/helper.rb
594
601
  - lib/flydata/command/kill_all.rb
595
602
  - lib/flydata/command/login.rb
596
- - lib/flydata/command/mysql.rb
597
- - lib/flydata/command/mysql_command_base.rb
598
- - lib/flydata/command/mysqlbinlog.rb
599
- - lib/flydata/command/mysqldump.rb
600
603
  - lib/flydata/command/restart.rb
601
604
  - lib/flydata/command/routine.rb
602
605
  - lib/flydata/command/sender.rb
@@ -651,17 +654,43 @@ files:
651
654
  - lib/flydata/json.rb
652
655
  - lib/flydata/json/.gitignore
653
656
  - lib/flydata/log_monitor.rb
654
- - lib/flydata/mysql/binlog_position.rb
655
- - lib/flydata/mysql/table_ddl.rb
656
657
  - lib/flydata/output/forwarder.rb
657
- - lib/flydata/parser/mysql/.gitignore
658
- - lib/flydata/parser/mysql/dump_parser.rb
659
- - lib/flydata/parser/mysql/mysql_alter_table.treetop
660
- - lib/flydata/parser_provider.rb
658
+ - lib/flydata/parser.rb
659
+ - lib/flydata/parser/parser_provider.rb
660
+ - lib/flydata/parser/source_table.rb
661
661
  - lib/flydata/preference/data_entry_preference.rb
662
662
  - lib/flydata/proxy.rb
663
663
  - lib/flydata/queueable_thread.rb
664
+ - lib/flydata/source.rb
665
+ - lib/flydata/source/component.rb
666
+ - lib/flydata/source/errors.rb
667
+ - lib/flydata/source/generate_source_dump.rb
668
+ - lib/flydata/source/parse_dump_and_send.rb
669
+ - lib/flydata/source/setup.rb
670
+ - lib/flydata/source/source_pos.rb
671
+ - lib/flydata/source/sync.rb
672
+ - lib/flydata/source/sync_generate_table_ddl.rb
673
+ - lib/flydata/source_file/setup.rb
674
+ - lib/flydata/source_file/sync.rb
675
+ - lib/flydata/source_mysql/command/mysql.rb
676
+ - lib/flydata/source_mysql/command/mysql_command_base.rb
677
+ - lib/flydata/source_mysql/command/mysqlbinlog.rb
678
+ - lib/flydata/source_mysql/command/mysqldump.rb
679
+ - lib/flydata/source_mysql/generate_source_dump.rb
680
+ - lib/flydata/source_mysql/mysql_compatibility_check.rb
681
+ - lib/flydata/source_mysql/parse_dump_and_send.rb
682
+ - lib/flydata/source_mysql/parser/.gitignore
683
+ - lib/flydata/source_mysql/parser/dump_parser.rb
684
+ - lib/flydata/source_mysql/parser/mysql_alter_table.treetop
685
+ - lib/flydata/source_mysql/setup.rb
686
+ - lib/flydata/source_mysql/source_pos.rb
687
+ - lib/flydata/source_mysql/sync.rb
688
+ - lib/flydata/source_mysql/sync_generate_table_ddl.rb
689
+ - lib/flydata/source_mysql/table_ddl.rb
690
+ - lib/flydata/source_zendesk/sync_generate_table_ddl.rb
691
+ - lib/flydata/source_zendesk/zendesk_flydata_tabledefs.rb
664
692
  - lib/flydata/sync_file_manager.rb
693
+ - lib/flydata/table_ddl.rb
665
694
  - lib/flydata/util/encryptor.rb
666
695
  - lib/flydata/util/file_util.rb
667
696
  - lib/flydata/util/shell.rb
@@ -712,11 +741,15 @@ files:
712
741
  - spec/flydata/helper/worker_spec.rb
713
742
  - spec/flydata/heroku_spec.rb
714
743
  - spec/flydata/json/json_ext_spec.rb
715
- - spec/flydata/mysql/binlog_position_spec.rb
716
- - spec/flydata/mysql/table_ddl_spec.rb
717
744
  - spec/flydata/output/forwarder_spec.rb
718
- - spec/flydata/parser/mysql/alter_table_parser_spec.rb
719
- - spec/flydata/parser/mysql/dump_parser_spec.rb
745
+ - spec/flydata/source_mysql/generate_source_dump_spec.rb
746
+ - spec/flydata/source_mysql/mysql_compatibility_check_spec.rb
747
+ - spec/flydata/source_mysql/parser/alter_table_parser_spec.rb
748
+ - spec/flydata/source_mysql/parser/dump_parser_spec.rb
749
+ - spec/flydata/source_mysql/sync_generate_table_ddl_spec.rb
750
+ - spec/flydata/source_mysql/table_ddl_spec.rb
751
+ - spec/flydata/source_spec.rb
752
+ - spec/flydata/source_zendesk/sync_generate_table_ddl_spec.rb
720
753
  - spec/flydata/sync_file_manager_spec.rb
721
754
  - spec/flydata/util/encryptor_spec.rb
722
755
  - spec/flydata/util/file_util_spec.rb
@@ -1,3 +0,0 @@
1
- require "mkmf"
2
-
3
- create_makefile "flydata/parser/mysql/dump_parser_ext"
@@ -1,22 +0,0 @@
1
- module Flydata
2
- module Mysql
3
- class BinLogPosition
4
- include Comparable
5
- attr_accessor :file, :pos
6
-
7
- def initialize(binlog_content)
8
- items = binlog_content.split("\t")
9
- @file = items[0]
10
- @pos = items[1].to_i
11
- end
12
-
13
- def <=>(obj)
14
- (self.file <=> obj.file) == 0 ? (self.pos <=> obj.pos) : (self.file <=> obj.file)
15
- end
16
-
17
- def to_s
18
- "#{file}\t#{pos}"
19
- end
20
- end
21
- end
22
- end
@@ -1,35 +0,0 @@
1
- require 'fluent_plugins_spec_helper'
2
- require 'flydata/mysql/binlog_position'
3
- module Flydata
4
- module Mysql
5
- describe BinLogPosition do
6
- let(:pos1) { BinLogPosition.new('mysql-bin.000064 107') }
7
- let(:pos2) { BinLogPosition.new('mysql-bin.000064 978') }
8
- let(:pos3) { BinLogPosition.new('mysql-bin.000065 107') }
9
- let(:pos4) { BinLogPosition.new('mysql-bin.000064 1107') }
10
- let(:pos5) { BinLogPosition.new('mysql-bin.000064 1107') }
11
-
12
- it 'should respond to greater than or equal to operator' do
13
- expect(pos1.respond_to?('>=')).to be_truthy
14
- end
15
-
16
- context 'when testing greater than or equal to operator' do
17
- it 'should return true when it is compared with another object with smaller position value' do
18
- expect(pos2 >= pos1).to be_truthy
19
- end
20
-
21
- it 'should return false when it is compared with another object with bigger binlogfile value' do
22
- expect(pos2 >= pos3).to be_falsey
23
- end
24
-
25
- it 'should compare the position as an integer (and not string)' do
26
- expect(pos2 >= pos4).to be_falsey
27
- end
28
-
29
- it 'should return true when it is compared with another object with equal value' do
30
- expect(pos4 >= pos5).to be_truthy
31
- end
32
- end
33
- end
34
- end
35
- end