sequel-jdbc-hive2-adapter 0.0.1

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1fa83dab077f1190d708a412b83b2f6e08cec8d6
4
+ data.tar.gz: 8cf8c718583586cc214f4d31e72f57a3c207798b
5
+ SHA512:
6
+ metadata.gz: 1738dc25532f26927556aa78fe357a0d182ec621241ae2dd41830ba24ddfcedae8269d77ddc1faebc88b8912f0ffa3efc4de366dfbe46344b1e886a0839dfdb6
7
+ data.tar.gz: 8c0afdd6fb59a037f6b66d441a7adbdd78fbe43dbafa7c5334d81333eccbc339ec58afc5721173e032dafdb91fd2eb76e6405c0ac2f4556374ef9c33d77e7664
data/.gitignore ADDED
@@ -0,0 +1,2 @@
1
+ Gemfile.lock
2
+ spec/database.yml
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ jruby-1.7.9
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "http://rubygems.org"
2
+
3
+ gemspec
data/README.md ADDED
@@ -0,0 +1,4 @@
1
+ * sequel-jdbc-hive2-adapter
2
+
3
+ A sequel adapter for querying Hive/Hive2 and Impala clusters.
4
+ JRuby is required when using this adapter. It will not work in any other Ruby interpreter.
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
@@ -0,0 +1,12 @@
1
+ # encoding: utf-8
2
+ require "sequel-jdbc-hive2-adapter/version"
3
+
4
+ # module Sequel
5
+ # module Jdbc
6
+ # module Hive2
7
+ # module Adapter
8
+ # # Your code goes here...
9
+ # end
10
+ # end
11
+ # end
12
+ # end
@@ -0,0 +1,9 @@
1
+ module Sequel
2
+ module Jdbc
3
+ module Hive2
4
+ module Adapter
5
+ VERSION = "0.0.1"
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,11 @@
1
+ # encoding: utf-8
2
+
3
+ module Sequel
4
+ module JDBC
5
+ module Hive2
6
+ module DatabaseMethods
7
+ # Add in hive specific database methods
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,29 @@
1
+ # encoding: utf-8
2
+ require 'sequel'
3
+ require 'sequel/adapters/jdbc'
4
+
5
+ Sequel::JDBC::DATABASE_SETUP[:hive] = proc do |db|
6
+ require 'jdbc/hive2'
7
+ Jdbc::Hive2.load_driver
8
+
9
+ org.apache.hadoop.hive.jdbc.HiveDriver
10
+
11
+ require 'sequel/adapters/jdbc/hive2'
12
+ # db.extend(Sequel::JDBC::Postgres::DatabaseMethods)
13
+ # db.dataset_class = Sequel::JDBC::Postgres::Dataset
14
+
15
+ org.apache.hadoop.hive.jdbc.HiveDriver
16
+ end
17
+
18
+ Sequel::JDBC::DATABASE_SETUP[:hive2] = proc do |db|
19
+ require 'jdbc/hive2'
20
+ Jdbc::Hive2.load_driver
21
+
22
+ org.apache.hive.jdbc.HiveDriver
23
+
24
+ require 'sequel/adapters/jdbc/hive2'
25
+ # db.extend(Sequel::JDBC::Postgres::DatabaseMethods)
26
+ # db.dataset_class = Sequel::JDBC::Postgres::Dataset
27
+
28
+ org.apache.hive.jdbc.HiveDriver
29
+ end
@@ -0,0 +1,22 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = 'sequel-jdbc-hive2-adapter'
3
+ s.version = '0.0.1'
4
+ s.authors = ['Josh Ferguson']
5
+ s.email = %w(josh@modeanalytics.com)
6
+ s.homepage = 'https://github.com/mode/sequel-hive2-adapter'
7
+ s.summary = %q{Sequel adapter for Hive/Impala}
8
+ s.description = %q{Use this adapter to use sequel to query Hive and Impala clusters}
9
+
10
+ s.rubyforge_project = 'sequel-jdbc-hive2-adapter'
11
+
12
+ s.files = `git ls-files`.split("\n")
13
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
14
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
15
+ s.require_paths = %w(lib)
16
+
17
+ s.add_runtime_dependency 'jdbc-hive2'
18
+
19
+ s.add_development_dependency 'rake'
20
+ s.add_development_dependency 'rspec'
21
+ s.add_development_dependency 'sequel'
22
+ end
data/spec/cb_clean.csv ADDED
@@ -0,0 +1,10 @@
1
+ start_time,type
2
+ 12/31/10 23:49,Casual
3
+ 12/31/10 23:37,Registered
4
+ 12/31/10 23:27,Registered
5
+ 12/31/10 23:21,Registered
6
+ 12/31/10 23:20,Casual
7
+ 12/31/10 23:18,Registered
8
+ 12/31/10 23:18,Registered
9
+ 12/31/10 23:17,Casual
10
+ 12/31/10 23:16,Casual
@@ -0,0 +1,7 @@
1
+ adapter: jdbc:hive2
2
+ host: ec2-ip.us-west-2.compute.amazonaws.com
3
+ port: 10000
4
+ ssl: false
5
+ database: default
6
+ username: test
7
+ password: test
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Sequel::JDBC::Hive2' do
4
+ let(:conn) { Sequel.connect(HiveConfig.connection_url) }
5
+
6
+ it 'should show tables' do
7
+ tables = []
8
+ conn.dataset.fetch_rows("SHOW TABLES") do |row|
9
+ tables << row[:tab_name]
10
+ end
11
+ tables.length.should be > 0
12
+ end
13
+
14
+ it 'should select rows from a table' do
15
+ rows = []
16
+ conn.dataset.fetch_rows("SELECT * FROM cb_clean LIMIT 100") do |row|
17
+ rows << row
18
+ end
19
+ rows.length.should be > 0
20
+ end
21
+ end
data/spec/schema.sql ADDED
@@ -0,0 +1,2 @@
1
+ CREATE TABLE cb_clean(start_time STRING, type STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
2
+ LOAD DATA LOCAL INPATH 'cb_clean.csv' INTO TABLE cb_clean;
@@ -0,0 +1,45 @@
1
+ require 'yaml'
2
+ require 'sequel'
3
+ require 'sequel/jdbc_hive2_adapter'
4
+
5
+ class HiveConfig
6
+ class << self
7
+ def adapter
8
+ config['adapter']
9
+ end
10
+
11
+ def host
12
+ config['host']
13
+ end
14
+
15
+ def port
16
+ config['port']
17
+ end
18
+
19
+ def database
20
+ config['database']
21
+ end
22
+
23
+ def username
24
+ config['username']
25
+ end
26
+
27
+ def password
28
+ config['password']
29
+ end
30
+
31
+ def ssl
32
+ config['ssl'] == true ? true : false
33
+ end
34
+
35
+ def connection_url
36
+ "#{adapter}://#{host}:#{port}/#{database};user=#{username};password=#{password};ssl=#{ssl}"
37
+ end
38
+
39
+ private
40
+
41
+ def config
42
+ @config ||= YAML.load_file(File.join(File.dirname(__FILE__), 'database.yml'))
43
+ end
44
+ end
45
+ end
metadata ADDED
@@ -0,0 +1,119 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sequel-jdbc-hive2-adapter
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Josh Ferguson
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-04-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: jdbc-hive2
15
+ version_requirements: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ requirement: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - '>='
23
+ - !ruby/object:Gem::Version
24
+ version: '0'
25
+ prerelease: false
26
+ type: :runtime
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ prerelease: false
40
+ type: :development
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ version_requirements: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ requirement: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - '>='
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
53
+ prerelease: false
54
+ type: :development
55
+ - !ruby/object:Gem::Dependency
56
+ name: sequel
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ requirement: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - '>='
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ prerelease: false
68
+ type: :development
69
+ description: Use this adapter to use sequel to query Hive and Impala clusters
70
+ email:
71
+ - josh@modeanalytics.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - .gitignore
77
+ - .ruby-version
78
+ - Gemfile
79
+ - README.md
80
+ - Rakefile
81
+ - lib/sequel-jdbc-hive2-adapter.rb
82
+ - lib/sequel-jdbc-hive2-adapter/version.rb
83
+ - lib/sequel/adapters/jdbc/hive2.rb
84
+ - lib/sequel/jdbc_hive2_adapter.rb
85
+ - sequel-jdbc-hive2-adapter.gemspec
86
+ - spec/cb_clean.csv
87
+ - spec/database.template.yml
88
+ - spec/jdbc_hive2_adapter_spec.rb
89
+ - spec/schema.sql
90
+ - spec/spec_helper.rb
91
+ homepage: https://github.com/mode/sequel-hive2-adapter
92
+ licenses: []
93
+ metadata: {}
94
+ post_install_message:
95
+ rdoc_options: []
96
+ require_paths:
97
+ - lib
98
+ required_ruby_version: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ required_rubygems_version: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - '>='
106
+ - !ruby/object:Gem::Version
107
+ version: '0'
108
+ requirements: []
109
+ rubyforge_project: sequel-jdbc-hive2-adapter
110
+ rubygems_version: 2.1.9
111
+ signing_key:
112
+ specification_version: 4
113
+ summary: Sequel adapter for Hive/Impala
114
+ test_files:
115
+ - spec/cb_clean.csv
116
+ - spec/database.template.yml
117
+ - spec/jdbc_hive2_adapter_spec.rb
118
+ - spec/schema.sql
119
+ - spec/spec_helper.rb