cityofchicago/chicago-energy-benchmarking-xq83-jr8c
Icon for Socrata external plugin

Query the Data Delivery Network

Query the DDN

The 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 chicago_energy_benchmarking table in this repository, by referencing it like:

"cityofchicago/chicago-energy-benchmarking-xq83-jr8c:latest"."chicago_energy_benchmarking"

or in a full query, like:

SELECT
    ":id", -- Socrata column ID
    "community_area", -- The Chicago community area where the property is located.
    "chicago_energy_rating", -- The zero-to-four-star Chicago Energy Rating assigned to the building in the shown Data Year. A building with zero stars did not submit a report, or did submit a report but was missing required information. All other buildings receive between one and four stars, with four stars reflecting the highest performance. Every building receives a Chicago Energy Rating Placard with this rating, which must be posted in a prominent location at the building. The rating must also be shared at the time of listing the building for sale or for lease. For more information, visit: www.ChicagoEnergyRating.org  This column was added for the 2018 Data Year. It is blank for previous years.
    "reporting_status", -- Whether the building submitted its report for the Data Year shown. Buildings that did not do so were not listed at all for Data Years through 2017 so all records prior to 2018 will have a value of Submitted. "Temporarily Exempt" means that the building received a one-year, temporary exemption from reporting. "Not Submitted"  means that the building did not receive an exemption or submit a report, and is out of compliance. This status could also mean that a report was submitted, but was missing required information, such as whole-building energy use. "Submitted" means the building submitted a report and is in compliance for the Data Year shown. 
    "zip_code", -- Property ZIP code.
    "address", -- Property street address.
    "year_built", -- Year in which a property was constructed or underwent a complete renovation.
    "gross_floor_area_buildings_sq_ft", -- Total interior floor space in square feet between the outside surfaces of a building’s enclosing walls, with the exception of any interior space used for parking. This includes tenant space, common areas, stairwells, basements, and storage, but does not include any interior parking areas. This is the Property Gross Floor Area - EPA Calculated (Buildings) field from Portfolio Manager.
    "primary_property_type", -- The primary use of a property (e.g. office, retail store). Primary use is defined as a function that accounts for more than 50% of a property. This is the Property Type - EPA Calculated field from Portfolio Manager.
    ":@computed_region_bdys_3d7i",
    "district_steam_use_kbtu", -- The annual amount of district steam consumed by the property on-site, measured in thousands of British thermal units (kBtu).
    "id", -- A six-digit unique identifier assigned to each property covered by the Chicago Energy Benchmarking Ordinance for tracking and identification purposes.
    "property_name", -- Official or common property name.
    "data_year", -- Calendar year (January-December) represented by each data record.
    ":@computed_region_vrxf_vc4k",
    "location_zip",
    ":@computed_region_43wa_7qmu",
    "location_city",
    ":@computed_region_awaf_s7ux",
    "exempt_from_chicago_energy_rating", -- Shows whether the building is subject to the Chicago Energy Rating Ordinance. Some properties are required to submit energy benchmarking reports but are not subject to the requirements of the Chicago Energy Rating program. These buildings do not receive a Chicago Energy Rating, typically due to technical reasons.  This column was added for the 2018 Data Year. It is blank for previous years.
    "location_state",
    "location_address",
    "of_buildings", -- Number of buildings included in the property's report. In cases where a property is reporting as a campus, multiple buildings may be included in one report.
    "district_chilled_water_use_kbtu", -- The annual amount of district chilled water consumed by the property on-site, measured in thousands of British thermal units (kBtu).
    "row_id", -- A unique ID for the row, made up of the combination of the Data Year and ID.
    "location", -- Property location in a data type recognized by the data portal software for mapping and other purposes.
    "longitude", -- Property longitude.
    "latitude", -- Property latitude.
    "electricity_use_kbtu", -- The annual amount of electricity consumed by the property on-site, including electricity purchased from the grid and generated by onsite renewable systems, measured in thousands of British thermal units (kBtu).
    ":@computed_region_6mkv_f3dw",
    "ghg_intensity_kg_co2e_sq_ft", -- Total Greenhouse Gas Emissions divided by property's gross floor area, measured in kilograms of carbon dioxide equivalent per square foot.
    "total_ghg_emissions_metric_tons_co2e", -- The total amount of greenhouse gas emissions, including carbon dioxide, methane, and nitrous oxide gases released into the atmosphere as a result of energy consumption at the property, measured in metric tons of carbon dioxide equivalent.
    "weather_normalized_source_eui_kbtu_sq_ft", -- Weather Normalized (WN) Source Energy Use Intensity (EUI) is a property's WN Source Energy divided by its gross floor area. WN Source Energy is the Source Energy Use the property would have consumed during 30-year average weather conditions. WN Source EUI is measured in measured in thousands of British thermal units (kBtu) per square foot.
    "weather_normalized_site_eui_kbtu_sq_ft", -- Weather Normalized (WN) Site Energy Use Intensity (EUI) is a property's WN Site Energy divided by its gross floor area (in square feet). WN Site Energy is the Site Energy Use the property would have consumed during 30-year average weather conditions. WN Site EUI is measured in measured in thousands of British thermal units (kBtu) per square foot.
    "source_eui_kbtu_sq_ft", -- Source Energy Use Intensity (EUI) is a property's Source Energy Use divided by its gross floor area. Source Energy Use is the annual energy used to operate the property, including losses from generation, transmission, & distribution. Source EUI is  measured in thousands of British thermal units (kBtu) per square foot.
    "site_eui_kbtu_sq_ft", -- Site Energy Use Intensity (EUI) is a property's Site Energy Use divided by its gross floor area. Site Energy Use is the annual amount of all the energy consumed by the property on-site, as reported on utility bills. Site EUI is  measured in thousands of British thermal units (kBtu) per square foot.
    "all_other_fuel_use_kbtu", -- The annual amount of fuel use other than electricity, natural gas, district chilled water, or district steam consumed by the property on-site, measured in thousands of British thermal units (kBtu).
    "natural_gas_use_kbtu", -- The annual amount of utility-supplied natural gas consumed by the property, measured in thousands of British thermal units (kBtu).
    "energy_star_score", -- 1-100 rating that assesses a property’s overall energy performance, based on national data to control for differences among climate, building uses, and operations. A score of 50 represents the national median.
    "water_use_kgal" -- Water use for the data year in thousands of gallons. This column was added for the 2018 Data Year. It is blank for previous years. This information is collected by the City of Chicago from the Chicago Department of Water and is not reported by building owners to the City of Chicago. In some cases, data are not available for some buildings.
FROM
    "cityofchicago/chicago-energy-benchmarking-xq83-jr8c:latest"."chicago_energy_benchmarking"
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 cityofchicago/chicago-energy-benchmarking-xq83-jr8c with SQL in under 60 seconds.

This repository is an "external" repository. That means it's hosted elsewhere, in this case at data.cityofchicago.org. When you querycityofchicago/chicago-energy-benchmarking-xq83-jr8c:latest on the DDN, we "mount" the repository using the socrata mount handler. The mount handler proxies your SQL query to the upstream data source, translating it from SQL to the relevant language (in this case SoQL).

We also cache query responses on the DDN, but we run the DDN on multiple nodes so a CACHE_HIT is only guaranteed for subsequent queries that land on the same node.

Query Your Local Engine

Install Splitgraph Locally
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; sgrcan manage the image, container and volume for you.

There are a few ways to ingest data into the local engine.

For external repositories (like this repository), 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, where the author has pushed Splitgraph Images to the repository, you can "clone" and/or "checkout" the data using sgr cloneand sgr checkout.

Mounting Data

This repository is an external repository. It's not hosted by Splitgraph. It is hosted by data.cityofchicago.org, and Splitgraph indexes it. This means it is not an actual Splitgraph image, so you cannot use sgr clone to get the data. Instead, you can use the socrata adapter with the sgr mount command. Then, if you want, you can import the data and turn it into a Splitgraph image that others can clone.

First, install Splitgraph if you haven't already.

Mount the table with sgr mount

sgr mount socrata \
  "cityofchicago/chicago-energy-benchmarking-xq83-jr8c" \
  --handler-options '{
    "domain": "data.cityofchicago.org",
    "tables": {
        "chicago_energy_benchmarking": "xq83-jr8c"
    }
}'

That's it! Now you can query the data in the mounted table like any other Postgres table.

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, cityofchicago/chicago-energy-benchmarking-xq83-jr8c is just another Postgres schema.