Class: Aliyun::Odps::TableTunnels

Inherits:
ServiceObject show all
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

#master

Instance Method Summary collapse

Methods inherited from ServiceObject

build, #initialize, #project, service_pool

Constructor Details

This class inherits a constructor from Aliyun::Odps::ServiceObject

Instance Method Details

#clientObject



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