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 energy_star_certified_telephones
table in this repository, by referencing it like:
"energystar-gov/energy-star-certified-telephones-bpzy-9tg8:latest"."energy_star_certified_telephones"
or in a full query, like:
SELECT
":id", -- Socrata column ID
"configuration", -- The physical configuration of the telephone including: Cordless Telephone, a telephone with a base station and a handset; Corded Telephone, a telephone with a permanent physical connection between the handset and the network; Conference Telephone, a telephone without a handset that utilizes a speakerphone for all communications and is primarily used for conference calls; Additional Handset, a telephone designed for use with a multi-handset telephone system; or a Wireless (Wi-Fi) Telephone, a telephone that connects via Wi-Fi.
"product_type", -- The sound transmission mechanism of the telephone, either analog, Voice over Internet Protocol (VoIP), or a hybrid of analog and VoIP.
"model_name", -- An identifier assigned by the manufacturer or private labeler to a product or family/series of products for sales and marketing purposes.
"energy_efficient_ethernet_gigabit", -- A technology which enables reduced power consumption of Gigabit Ethernet interfaces during times of low data throughput. Specified by IEEE 802.3az.
"date_available_on_market", -- The date that the model is available for purchase.
"fast_ethernet_ports", -- The number of Fast (10/100) Ethernet ports present in the model.
"display_resolution_pixels", -- The native resolution of the telephone's display.
"physical_data_ports", -- Physical data ports on the model.
"frequency", -- Frequency ranges are used in cordless telephones primarily to allow for multiple devices to utilize the same ranges and to permit frequency-hopping by the phones. The term “frequency” refers to the rate at which an electromagnetic wave oscillates.
"pd_id", -- The ENERGY STAR Unique ID (ESUID) is a string of seven numbers EPA assigns to an ENERGY STAR model or set of models with unique performance characteristics. This ESUID is unique to both the model and product specification version and is assigned by EPA upon receipt of certification information from the certification body. Each row within the product list will have a unique ESUID. Developers may wish to use this ESUID to track information on certified models in their information systems.
"energy_star_partner", -- An organization that signed a Partnership Agreement with EPA to manufacture or private label ENERGY STAR qualified products.
"model_number", -- A distinguishing, alphanumeric identifier, assigned to a product by the manufacturer or private labeler. The model number may include a wildcard that can be replaced by any letter or digit and still accurately capture what is covered by the model’s ENERGY STAR certification; an asterisk symbol (*) represents a letter, and a number symbol (#) a digit.
"external_power_supply", -- A component contained in a separate physical enclosure external to the telephone casing, designed to convert line voltage ac input from the mains to lower dc voltage(s) in order to provide power to the telephone.
"additional_model_information", -- An identifier assigned by the manufacturer or private labeler to a product or family/series of products for sales and marketing purposes. This column includes alternative means to identify the model/model family (e.g., additional model names, additional model numbers, retailer SKUs, product descriptions).
"markets", -- Includes products sold in the U.S. and/or Canada and other ENERGY STAR partner countries.
"energy_efficient_ethernet_fast", -- A technology which enables reduced power consumption of Fast Ethernet interfaces during times of low data throughput. Specified by IEEE 802.3az.
"low_power_wireless_technologies", -- Low power wireless technologies supported by the model.
"upc", -- UPC codes provided by partners for ENERGY STAR certified products. The brand, model name and model number continue to serve as the identifiers used to establish certification. The UPC code data below is intended to aid in identification of ENERGY STAR models. UPC code data is not provided for all certified models.
"external_proxy_capability", -- The ability of a telephone to maintain network presence on behalf of an End Point Device.
"gigabit_ethernet_ports", -- The number of Gigabit (10/100/1000) Ethernet ports present in the model.
"additional_handset_telephones_supported", -- The number of additional handsets supported by the telephone.
"brand_name", -- An identifier assigned by the manufacturer or private labeler to a product or family/series of products for sales and marketing purposes.
"energy_star_model_identifier", -- A unique string of characters assigned by certification bodies (CBs) to identify a model or set of models with the same performance characteristics. This identifier should remain the same for a model even if it is recertified to a new version of an ENERGY STAR specification. This string of characters is determined by CBs and is not the ENERGY STAR Unique ID assigned by EPA.
"off_mode_power_w",
"date_qualified", -- The date on which the product was confirmed to meet the ENERGY STAR specification.
"power_over_ethernet_class", -- The class of Power Over Ethernet indicating the range of operating power of the device. PoE is a technology which enables the transfer of electrical power, along with data, to network end point devices through an Ethernet cable.
"standby_power_w" -- Mode with the telephone is connected to a power source and a telephone line or other physical or wireless network connection and is capable of receiving a call. The telephone is not receiving or transmitting sound, and the handset is "on the hook" and the speakerphone is not engaged.
FROM
"energystar-gov/energy-star-certified-telephones-bpzy-9tg8:latest"."energy_star_certified_telephones"
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 energystar-gov/energy-star-certified-telephones-bpzy-9tg8
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 energystar-gov/energy-star-certified-telephones-bpzy-9tg8: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 energystar-gov/energy-star-certified-telephones-bpzy-9tg8
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 energystar-gov/energy-star-certified-telephones-bpzy-9tg8:latest
This will download all the objects for the latest
tag of energystar-gov/energy-star-certified-telephones-bpzy-9tg8
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 energystar-gov/energy-star-certified-telephones-bpzy-9tg8: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 energystar-gov/energy-star-certified-telephones-bpzy-9tg8: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, energystar-gov/energy-star-certified-telephones-bpzy-9tg8
is just another Postgres schema.