Python client library
Client
A basic usage example of the Python client is shown below. Details about PQL query syntax can be found on the PQL Introduction page.
import molecula
# create client
client = molecula.Client('host:port', auth=molecula.TLSAuth(certificate, private_key))
# create VDS
client.create_vds(vdsd='')
# list VDSs
client.get_vds_list()
# get VDS
client.get_vds(name='vds-name')
# delete VDS
client.delete_vds(name='vds-name')
# query a VDS (PQL)
print(list(client.query("vds-name", "PQL query")))
# query a VDS (SQL)
print(list(client.querysql("SQL query")))
# concurrent futures
future1 = client.query_future("vds-name", "PQL query")
future2 = client.query_future("vds-name", "PQL query")
print(future1.result())
print(future2.result())
# futures with SQL
future1 = client.querysql_future("SQL query")
future2 = client.querysql_future("SQL query")
print(future1.result())
print(future2.result())
# inspect record
print(list(client.inspect("vds-id", ids=[100, 101], fields=["field-name"])))
Connecting to a Cluster
Client-side load balancing with failover is supported via the underlying library, gRPC Core. In order to use this feature, you must configure the client address with a compatible name as defined in the gRPC Name Resolution document. The name can resolve to multiple hosts, and those hosts will be used with a client-side Round Robin load balancer, which will automatically remove inactive hosts.
For example, in order to connect to two hosts named 10.1.100.1 and 10.1.100.2, you would chose the ipv4 scheme as defined in the gRPC Name Resolution document, and instantiate the client:
client = molecula.Client('ipv4:10.1.100.1:20101,10.1.100.2:20101')
Similarly, you can use the above connection string with pilosa-cli:
pilosa-cli ipv4:10.1.100.1:20101,10.1.100.2:20101 get-vds-list