wa-gov/surplus-funds-expenditures-ti55-mvy5
Loading...

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

"wa-gov/surplus-funds-expenditures-ti55-mvy5:latest"."surplus_funds_expenditures"

or in a full query, like:

SELECT
    ":id", -- Socrata column ID
    "origin", -- This field shows from which filed report-type the data originates. A/LE50 refers to non-itemized expenditures of $200 and less per expenditure. A/GT50 refers to itemized expenditures greater than $200 per expenditure. A/LE50 and A/GT50 are both reported on schedule A of form C4. As part of inflationary rule changes the dollar amount increased on April 1, 2023 from $50 and less per expenditure to $200 or less per expenditure. 
    "url", -- A link to a PDF version of the original report as it was filed to the PDC.
    "type", -- Indicates if this record is for a candidate or a political committee. In the case of a political committee, it may be either a continuing political committee, party committee or single election year committee.
    "filer_name", -- The candidate or committee name as reported on the form C1 candidate or committee registration form. The name will be consistent across all records for the same filer id and election year but may differ across years due to candidates or committees changing their name.
    "recipient_city", -- The city of the individual or vendor paid as reported.  Please refer to the recipient_name field for more information regarding address fields.
    "recipient_state", -- The state of the individual or vendor paid as reported.  Please refer to the recipient_name field for more information regarding address fields.
    "recipient_name", -- The name of the individual or vendor paid as reported. The names appearing here have not been normalized and the same entity may be represented by different names in the dataset. Non-itemized expenditures of $200 or less will have a recepient_name of EXPENSES OF $200 OR LESS and origin of A/LE50, and all address fields will be empty.  As part of inflationary rule changes the dollar amount increased on April 1, 2023 from $50 or less to $200 or less.
    "code", -- The type of expenditure. The values displayed are human readable equivalents of the type codes reported on the form C4 schedule A. Please refer to the form for a listing of all codes. Itemized expenditures are generally required to have either a code or a description but may be required to have both. Non-itemized expenditures do not have a description.
    "id", -- PDC internal identifier that corresponds to a single expenditure record. When combined with the origin value, this number uniquely identifies a single row.
    "filer_id", -- The unique id assigned to a candidate or political committee. The filer id is consistent across election years with the exception that an individual running for a second office in the same election year will receive a second filer id. There is no correlation between the two filer ids. For a candidate and single-election-year committee such as a ballot committee, the combination of filer_id and election_year uniquely identifies a campaign.
    "itemized_or_non_itemized", -- A record for an itemized expenditure represents a single expenditure. A record for a non-itemized expenditure represents one or more expenditures where the individual expenditures are less than the limit for itemized reporting. In this case the record is the aggregate total for the reporting period. 
    "recipient_location", -- The geocoded location of the individual or vendor paid as reported. The quality of the geocoded location is dependent on how many of the address fields are available and is calculated using a third-party service. The PDC has not verified the results of the geocoding. Please refer to the recipient_name field for more information regarding address fields.
    "report_number", -- PDC identifier used for tracking the individual form C4 . Multiple expenditures will have the same report number when they were reported to the PDC at the same time. The report number is unique to the report it represents. When a report is amended, a new report number is assigned that supersedes the original version and the original report records are not included in this dataset.
    "person_id", -- The unique ID assigned to a public office holder or candidate. This id is consistent across years and, offices or candidacies and is the preferred id for identifying a natural person.
    "election_year", -- The election year in the case of candidates and single election committees. The reporting year in the case of continuing political committees.
    "amount", -- The amount of the expenditure or in-kind contribution. In-kind contributions are both a contribution and an expenditure and represented in both the contributions and expenditures data.
    "expenditure_date", -- The date that the expenditure was made or the in-kind contribution was received. See the metadata for the origin and amount field regarding in-kind contributions.
    "description", -- The reported description of the transaction. Non-itemized expenditures will not contain a description.
    "recipient_address", -- The street address of the individual or vendor paid as reported.  Please refer to the recipient_name field for more information regarding address fields.
    "recipient_zip" -- The zip code of the individual or vendor paid as reported.  Please refer to the recipient_name field for more information regarding address fields.
FROM
    "wa-gov/surplus-funds-expenditures-ti55-mvy5:latest"."surplus_funds_expenditures"
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 wa-gov/surplus-funds-expenditures-ti55-mvy5 with SQL in under 60 seconds.

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, 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 cloneand sgr checkout.

Cloning Data

Because wa-gov/surplus-funds-expenditures-ti55-mvy5: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 wa-gov/surplus-funds-expenditures-ti55-mvy5

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 wa-gov/surplus-funds-expenditures-ti55-mvy5:latest

This will download all the objects for the latest tag of wa-gov/surplus-funds-expenditures-ti55-mvy5 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 wa-gov/surplus-funds-expenditures-ti55-mvy5: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 wa-gov/surplus-funds-expenditures-ti55-mvy5: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, wa-gov/surplus-funds-expenditures-ti55-mvy5 is just another Postgres schema.

Related Documentation:

Loading...