4.0.0 • Published 4 months ago

bigqueryquery-to-graphql-schema v4.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

bigqueryquery-to-graphql-schema

Generate a GraphQL Schema Definition from the Result of a Google BigQuery SQL Query:

await queryFileToSchema('./sql/Intrastat.sql')

gets you:

#generated from ./sql/Intrastat.sql 
type BqIntrastat {
  belegmonat: String  # {"name":"belegmonat","type":"STRING","mode":"NULLABLE"} 
  menge: Int  # {"name":"menge","type":"INTEGER","mode":"NULLABLE"} 
  items: [String]  # {"name":"items","type":"STRING","mode":"REPEATED"} 
}
type BqIntrastatResult {
  rows: [BqIntrastat]
  meta: BqJobMeta
}

If you want to provide the sql query directly instead as a filename, use queryToSchema()

There is also a command line tool for easy access:

$  yarn run bigqueryquery-to-graphql-schema --help
yarn run v1.22.17
usage: bq2gqlschema.ts [-h] [--projectId PROJECTID] [--location LOCATION] sqlfile [sqlfile ...]

Convert BigQuery SQL Query to the resulting GraphQL Schema.

positional arguments:
  sqlfile               Filename with a single BigQuery SQL Query.

optional arguments:
  -h, --help            show this help message and exit
  --projectId PROJECTID
                        BigQuery project ID
  --location LOCATION   BigQuery Dataset Location

Please provide `GOOGLE_APPLICATION_CREDENTIALS` via the Environment!

To use the generated GraphQL you also have to add the following static types somewhere to your schema:

scalar Date
scalar DateTime

type BqStatus {
  state: String
}

type BqStatistics {
  creationTime: String
  startTime: String
  endTime: String
  totalBytesProcessed: String
  query: BqQuery
}

type BqJobReference {
  projectId: String
  jobId: String
  location: String
}

type BqDestinationTable {
  projectId: String
  datasetId: String
  tableId: String
}

type BqQuery {
  query: String
  writeDisposition: String
  priority: String
  useLegacySql: Boolean
  destinationTable: BqDestinationTable
}

type BqConfiguration {
  jobType: String
  query: BqQuery
}

type BqJobMeta {
  kind: String
  etag: String
  id: String
  selfLink: String
  user_email: String
  status: BqStatus
  statistics: BqStatistics
  jobReference: BqJobReference
  configuration: BqConfiguration
}

See also

4.0.0

4 months ago

2.2.0

2 years ago

2.0.2

2 years ago

2.0.0

2 years ago

1.0.1

2 years ago