Class: Aliyun::Odps::TableTunnels
- Inherits:
-
ServiceObject
- Object
- ServiceObject
- Aliyun::Odps::TableTunnels
- Defined in:
- lib/aliyun/odps/tunnel/table_tunnels.rb
Constant Summary collapse
- TUNNEL_VERSION =
'4'
- SUPPORTED_ENCODING =
%w(raw deflate snappy)
Instance Attribute Summary
Attributes inherited from ServiceObject
Instance Method Summary collapse
- #client ⇒ Object
-
#init_download_session(table_name, partition = {}) ⇒ Object
Init Download Session.
-
#init_upload_session(table_name, partition = {}) ⇒ Object
Init Upload Session.
Methods inherited from ServiceObject
build, #initialize, #project, service_pool
Constructor Details
This class inherits a constructor from Aliyun::Odps::ServiceObject
Instance Method Details
#client ⇒ Object
7 8 9 10 11 12 |
# File 'lib/aliyun/odps/tunnel/table_tunnels.rb', line 7 def client config = Aliyun::Odps.config.dup config.endpoint = TunnelRouter.get_tunnel_endpoint(project.client, project.name) || Aliyun::Odps.config.tunnel_endpoint fail TunnelEndpointMissingError if config.endpoint.nil? Aliyun::Odps::Client.new(config) end |
#init_download_session(table_name, partition = {}) ⇒ Object
Init Download Session
20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/aliyun/odps/tunnel/table_tunnels.rb', line 20 def init_download_session(table_name, partition = {}) path = "/projects/#{project.name}/tables/#{table_name}" query = { downloads: true } unless partition.empty? query.merge!(partition: generate_partition_spec(partition)) end resp = client.post(path, query: query) result = resp.parsed_response result = JSON.parse(result) if result.is_a?(String) build_download_session(result, table_name, query['partition']) end |
#init_upload_session(table_name, partition = {}) ⇒ Object
Init Upload Session
40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/aliyun/odps/tunnel/table_tunnels.rb', line 40 def init_upload_session(table_name, partition = {}) path = "/projects/#{project.name}/tables/#{table_name}" query = { uploads: true } unless partition.empty? query.merge!(partition: generate_partition_spec(partition)) end resp = client.post(path, query: query) result = resp.parsed_response result = JSON.parse(result) if result.is_a?(String) build_upload_session(result, table_name, query['partition']) end |