DeltaSharing

Elixir client library for the Delta Sharing Protocol

Status

Early stages of development, already useful

Library Structure

There are two main modules:

Sample Usage

Download open-datasets.share or any other profile file you have access to

p = Profile.from_file("../open-datasets.share")
c = Client.new(p)
RawClient.list_shares(c)
RawClient.get_share(c, "delta_sharing")
RawClient.list_schemas_in_share(c, "delta_sharing")
RawClient.list_tables_in_schemas(c, "delta_sharing", "default")
RawClient.list_all_tables_in_share(c, "delta_sharing")
RawClient.query_table_version(c, "delta_sharing", "default", "COVID_19_NYT")
RawClient.query_table_metadata(c, "delta_sharing", "default", "COVID_19_NYT")
RawClient.query_table(c, "delta_sharing", "default", "COVID_19_NYT", 10)
r = Client.query_table(c, "delta_sharing", "default", "COVID_19_NYT", 10)
[_protocol, _metadata, %{"file" => %{"url" => url}} | _] = r
Tesla.get(url)

Installation

def deps do
[
{:delta_sharing, "~> 0.1.0"}
]
end

Docs

hexdocs.pm/delta_sharing

License

MIT