wa-gov/campaign-finance-reporting-history-7qr9-q2c9
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 campaign_finance_reporting_history table in this repository, by referencing it like:

"wa-gov/campaign-finance-reporting-history-7qr9-q2c9:latest"."campaign_finance_reporting_history"

or in a full query, like:

SELECT
    ":id", -- Socrata column ID
    "attachments", -- The report's attachment urls and all associated metadata in json format. Attachments may include original scanned reports (in the event of electronic filing exmeptions) or additional documentation supplied by the filer. Attachments may not be present on a given report.
    "url", -- A link to a PDF version of the original report as it was filed to the PDC. Most electronically filed reports will have a link. In the case of paper filed reports and some electronically filed reports, the exact report number can not be referenced to an image of the document. Please refer to the PDC dataset of imaged documents and reports which can be searched by filer_id, election_year and type to find the document images.
    "for_or_against", -- Ballot initiative committees are formed to either support or oppose an initiative. This field represents whether a committee supports (for) or opposes (against) a ballot initiative.
    "user_data", -- If this field is present, it serves as the official record of the submission. If absent, the official record of the report is the PDF found by following the link contained in the url field. The report_data field contains the form input data supplied by the user at the time of filing in json format. 
    "jurisdiction_type", -- The type of jurisdiction this office is: Statewide, Local, Judicial, etc.
    "type", -- Shows if this report was filed for a candidate or a political committee.
    "report_from", -- The period that the report covers is indicated by the the report_from and report_through fields. For form C3, the report_from and report_through dates are the same and indicate the date of the deposit that is filed on the C3. For form C4, the report_from and report_through dates are the period that the report covers.
    "election_year", -- The election year in the case of candidates and single election committees. The reporting year in the case of continuing political committees.
    "origin", -- The PDC form identifier for this report. C3 is a report of cash receipts, monetary contributions and other amounts related to a deposit of funds. C4 is a report of expenditures and receipts summary. For more on forms and filing requirements, please refer to the PDC web site (https://www.pdc.wa.gov)
    "report_through", -- The period that the report covers is indicated by the the report_from and report_through fields. For form C3, the report_from and report_through dates are the same and indicate the date of the deposit that is filed on the C3. For form C4, the report_from and report_through dates are the period that the report covers.
    "party", -- The political party as declared by the candidate on their C1 registration form. Contains only parties recognized by Washington State law.
    "metadata", -- At the point is submitted, the PDC automatically calculates totals and subtotals for certain information to make the report information easier to understand. This is primarily information that used to be captured on the forms, prior to electronic filing where the values can be calculated. None of the information in this field is supplied by the filer. The information is semi-structured JSON so that it is machine readable. The schema version of the information mirrors the schema version of the report_data column. 
    "amends_report", -- This field only applies to records which amend a prior report. The value is the report number of the previous version of the report that is superseded by this record.
    "amended_by_report", -- This field only applies to records which have been superseded by an amendment. The value is the report number of the newer version of the report.
    "jurisdiction_county", -- The county associated with the jurisdiction of a candidate or local ballot proposition. Multi-county jurisdictions are reported as the primary county. This field will be empty for political committees and when a candidate jurisdiction is statewide.
    "receipt_date", -- The date received or postmark date of the report.
    "filing_method", -- Indicates if the report was filed online or sent in by mail. In most cases, electronic filing is required for forms C3 and C4.
    "committee_id", -- The unique identifier of a committee. For a continuing committee, this id will be the same for all the years that the committee is registered. Single year committees and candidate committees will have a unique id for each year even though the candidate or committee organization might be the same across years. Surplus accounts will have a single committee id across all years.
    "position", -- The position associated with an office. This field typically applies to jurisdictions that have multiple positions or seats. This field does not apply to political committees.
    "jurisdiction", -- The political jurisdiction associated with the office of a candidate or ballot issue committee.
    "office", -- The office sought by the candidate. Does not apply to political committees.
    "ballot_number", -- If the committee is a Statewide Ballot Initiative Committee a ballot number will appear once a ballot number is assigned by the Secretary of State. Local Ballot Initiatives will not have a ballot number. This field will contain a number only if the Secretary of State issues a number.
    "legislative_district", -- The Washington State legislative district. This field only applies to candidates where the office is "state senator" or "state representative."
    "filer_name", -- The candidate or committee name as reported on the form C1 candidate or C1PC political 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.
    "report_number", -- PDC identifier used for tracking the individual form C3 and C4 reports. The report number is unique to the report it represents. When a report is amended, the amendment receives a new report number that supersedes the original report. 
    "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. 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.
    "version" -- The version of the report, representing the structure and elements of the submission. The version is necessary because the data structure is subject to change and improvement over time. Mostly relevant to data that is provided as JSON columns. Two reports records with different versions may not be interpreted in the same way due to changes in the organization of the data that may occur between versions. Any analysis should account for version changes.
FROM
    "wa-gov/campaign-finance-reporting-history-7qr9-q2c9:latest"."campaign_finance_reporting_history"
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/campaign-finance-reporting-history-7qr9-q2c9 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/campaign-finance-reporting-history-7qr9-q2c9: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/campaign-finance-reporting-history-7qr9-q2c9

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/campaign-finance-reporting-history-7qr9-q2c9:latest

This will download all the objects for the latest tag of wa-gov/campaign-finance-reporting-history-7qr9-q2c9 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/campaign-finance-reporting-history-7qr9-q2c9: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/campaign-finance-reporting-history-7qr9-q2c9: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/campaign-finance-reporting-history-7qr9-q2c9 is just another Postgres schema.

Related Documentation:

Loading...