Elixir client library for the Delta Sharing Protocol by the instadeq team
Implements the whole protocol as of this version
There are two main modules:
DeltaSharing.RawClient
: does the requests and returns the raw HTTP responsesDeltaSharing.Client
: does the requests and parses the responses returning Elixir structs
Download open-datasets.share or any other profile file you have access to
alias DeltaSharing.{Profile, Client, RawClient}
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)
Client.list_shares(c)
Client.get_share(c, "delta_sharing")
Client.list_schemas_in_share(c, "delta_sharing")
Client.list_tables_in_schemas(c, "delta_sharing", "default")
# pagination
{:ok, r1} = Client.list_tables_in_schemas(c, "delta_sharing", "default", 5)
Client.next(c, r1, 5)
Client.list_all_tables_in_share(c, "delta_sharing")
# pagination
{:ok, r2} = Client.list_all_tables_in_share(c, "delta_sharing", 5)
Client.next(c, r2, 5)
Client.query_table_version(c, "delta_sharing", "default", "COVID_19_NYT")
Client.query_table_metadata(c, "delta_sharing", "default", "COVID_19_NYT")
Client.query_table(c, "delta_sharing", "default", "COVID_19_NYT", 10)
Follow Instructions on hex.pm/packages/delta_sharing/
delta_sharing docs on Hex Docs
MIT