flydata 0.6.3 → 0.6.4

Sign up to get free protection for your applications and to get access to all the features.
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