Query the Data Delivery Network
Query the DDNThe easiest way to query any data on Splitgraph is via the "Data Delivery Network" (DDN). The DDN is a single endpoint that speaks the PostgreSQL wire protocol. Any Splitgraph user can connect to it at data.splitgraph.com:5432
and query any version of over 40,000 datasets that are hosted or proxied by Splitgraph.
For example, you can query the business_tax_receipts_btr_detailed
table in this repository, by referencing it like:
"cityoforlando/business-tax-receipts-btr-detailed-g89y-q5ja:latest"."business_tax_receipts_btr_detailed"
or in a full query, like:
SELECT
":id", -- Socrata column ID
":@computed_region_gsfg_ku74", -- This column was automatically created in order to record in what polygon from the dataset 'Orlando Neighborhoods' (gsfg-ku74) the point in column 'geocode' is located. This enables the creation of region maps (choropleths) in the visualization canvas and data lens.
"commissionerdistrict", -- Commissioner District Number
"comments_search", -- Additional Comments included on the license application. These comments may provide additional insight into the nature of the business that may not be apparent from the License Type alone.
"licenseno", -- The license number associated to the BTR
"businesstype", -- The type of business included on the license. Note that a license can include more than one Business Type. For example, an automobile dealer can have Retail, Service, and Sales business types under one License Number. There would be one row per Business Type in this data set.
"zoning_bndry", -- Zoning Boundary of the business address
"gpsy", -- GPS Y reference
"pid", -- Parcel ID - not populated if there are multiple Parcel IDs for an Address
"busaddr", -- Business Address on the License
"driarea", -- Development of Regional Impact Area indicator if applicable
"futlanduse_bndry", -- Future Land Use Boundary of the business address
"neighborhood", -- Neighborhood of the business address if applicable
"geocode", -- Geocode reference value
"license_date", -- Application date for the license
"application_milestone", -- Current Milestone of the License Application. This will update over time as the license moves through different stages of the renewal process.
":@computed_region_u8wz_9eai", -- This column was automatically created in order to record in what polygon from the dataset 'Orlando Main Street Program Area' (u8wz-9eai) the point in column 'geocode' is located. This enables the creation of region maps (choropleths) in the visualization canvas and data lens.
":@computed_region_bgqw_styj", -- This column was automatically created in order to record in what polygon from the dataset 'Orlando Commissioner Districts' (bgqw-styj) the point in column 'geocode' is located. This enables the creation of region maps (choropleths) in the visualization canvas and data lens.
"gpsx", -- GPS X reference
"lictype", -- Type of License. A license type can include many Business Types. For example, a License Type of PROFES (Professional) includes Attorney, CPA, Architect, and many other Business Types.
"open_yr", -- The first year that the business was opened
"years_open", -- The number of years the business has been/was open. If the value is <1.00, then the business has been open less than 1 year.
"business_email", -- Email address of the business
"business_phone", -- Phone number of the business
"busowner_name", -- Name of the Business Owner
"propowner_name", -- Name of the Property Owner
"inactive_yr", -- The first year that the license went Inactive
"commissioner_name", -- Commissioner Name
"inactvdtfmt", -- The date that the BTR went inactive.
"next_renew_dt", -- The next renewal date for the license.
"max_year", -- The latest year of BTR activity for this license. It is possible that the BTR was not issued in its final year - refer also to Inactive Date and Last Renewal Date for a more complete view.
"sqft_amt", -- The declared square footage of the business location according to the most recent year of activity (BTR Max Year)
"mainstreet_dist", -- Main Street District of the business address if applicable
"cra", -- Community Redevelopment Area indicator if applicable (Conroy Road, Downtown, 1-4/Republic Dr, Orange Blossom Trail)
"licstatus", -- The status of the license.
"years_inactive", -- The number of years the license has been inactive (if applicable). If the value is <1.00, then the license has been inactive less than 1 year.
"employee_amt", -- The declared # of employees at the business location according to the most recent year of activity (BTR Max Year)
"min_open", -- The earliest known Open Date for the Business
"last_renew_dt", -- The last date that the license was renewed.
"last_issdtfmt", -- The last date that this license was issued.
"businessname" -- Name of the business listed on the BTR
FROM
"cityoforlando/business-tax-receipts-btr-detailed-g89y-q5ja:latest"."business_tax_receipts_btr_detailed"
LIMIT 100;
Connecting to the DDN is easy. All you need is an existing SQL client that can connect to Postgres. As long as you have a SQL client ready, you'll be able to query cityoforlando/business-tax-receipts-btr-detailed-g89y-q5ja
with SQL in under 60 seconds.
Query Your Local Engine
bash -c "$(curl -sL https://github.com/splitgraph/splitgraph/releases/latest/download/install.sh)"
Read the installation docs.
Splitgraph Cloud is built around Splitgraph Core (GitHub), which includes a local Splitgraph Engine packaged as a Docker image. Splitgraph Cloud is basically a scaled-up version of that local Engine. When you query the Data Delivery Network or the REST API, we mount the relevant datasets in an Engine on our servers and execute your query on it.
It's possible to run this engine locally. You'll need a Mac, Windows or Linux system to install sgr
, and a Docker installation to run the engine. You don't need to know how to actually use Docker; sgr
can manage the image, container and volume for you.
There are a few ways to ingest data into the local engine.
For external repositories, the Splitgraph Engine can "mount" upstream data sources by using sgr mount
. This feature is built around Postgres Foreign Data Wrappers (FDW). You can write custom "mount handlers" for any upstream data source. For an example, we blogged about making a custom mount handler for HackerNews stories.
For hosted datasets (like this repository), where the author has pushed Splitgraph Images to the repository, you can "clone" and/or "checkout" the data using sgr clone
and sgr checkout
.
Cloning Data
Because cityoforlando/business-tax-receipts-btr-detailed-g89y-q5ja:latest
is a Splitgraph Image, you can clone the data from Spltgraph Cloud to your local engine, where you can query it like any other Postgres database, using any of your existing tools.
First, install Splitgraph if you haven't already.
Clone the metadata with sgr clone
This will be quick, and does not download the actual data.
sgr clone cityoforlando/business-tax-receipts-btr-detailed-g89y-q5ja
Checkout the data
Once you've cloned the data, you need to "checkout" the tag that you want. For example, to checkout the latest
tag:
sgr checkout cityoforlando/business-tax-receipts-btr-detailed-g89y-q5ja:latest
This will download all the objects for the latest
tag of cityoforlando/business-tax-receipts-btr-detailed-g89y-q5ja
and load them into the Splitgraph Engine. Depending on your connection speed and the size of the data, you will need to wait for the checkout to complete. Once it's complete, you will be able to query the data like you would any other Postgres database.
Alternatively, use "layered checkout" to avoid downloading all the data
The data in cityoforlando/business-tax-receipts-btr-detailed-g89y-q5ja:latest
is 0 bytes. If this is too big to download all at once, or perhaps you only need to query a subset of it, you can use a layered checkout.:
sgr checkout --layered cityoforlando/business-tax-receipts-btr-detailed-g89y-q5ja:latest
This will not download all the data, but it will create a schema comprised of foreign tables, that you can query as you would any other data. Splitgraph will lazily download the required objects as you query the data. In some cases, this might be faster or more efficient than a regular checkout.
Read the layered querying documentation to learn about when and why you might want to use layered queries.
Query the data with your existing tools
Once you've loaded the data into your local Splitgraph Engine, you can query it with any of your existing tools. As far as they're concerned, cityoforlando/business-tax-receipts-btr-detailed-g89y-q5ja
is just another Postgres schema.