Class BigQueryUtils
java.lang.Object
org.apache.beam.sdk.io.gcp.bigquery.BigQueryUtils
Utility methods for BigQuery related operations.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classOptions for how to convert BigQuery data to Beam data.static classOptions for how to convert BigQuery schemas to Beam schemas.static classRepresents a timestamp with picosecond precision, split into seconds and picoseconds components. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionconvertAvroFormat(Schema.FieldType beamFieldType, @Nullable Object avroValue, BigQueryUtils.ConversionOptions options) Tries to convert an Avro decoded value to a Beam field value based on the target type of the Beam field.static com.google.api.services.bigquery.model.TableRowConvert generic record to Bq TableRow.static com.google.api.services.bigquery.model.TableRowconvertGenericRecordToTableRow(GenericRecord record, com.google.api.services.bigquery.model.TableSchema tableSchema) Deprecated.static com.google.api.services.bigquery.model.TableSchemafromGenericAvroSchema(Schema schema) Convert an AvroSchemato a BigQueryTableSchema.static com.google.api.services.bigquery.model.TableSchemafromGenericAvroSchema(Schema schema, Boolean useAvroLogicalTypes) Convert an AvroSchemato a BigQueryTableSchema.static SchemafromTableSchema(com.google.api.services.bigquery.model.TableSchema tableSchema) Convert a BigQueryTableSchemato a BeamSchema.static SchemafromTableSchema(com.google.api.services.bigquery.model.TableSchema tableSchema, BigQueryUtils.SchemaConversionOptions options) Convert a BigQueryTableSchemato a BeamSchema.static @Nullable org.apache.beam.runners.core.metrics.ServiceCallMetricreadCallMetric(@Nullable com.google.api.services.bigquery.model.TableReference tableReference) Returns a ServiceCallMetric for recording statuses for all BQ API responses related to reading elements directly from BigQuery in a process-wide metric.static final org.apache.beam.sdk.io.gcp.bigquery.BigQueryIO.TypedRead.FromBeamRowFunction<com.google.api.services.bigquery.model.TableRow> static final org.apache.beam.sdk.io.gcp.bigquery.BigQueryIO.TypedRead.ToBeamRowFunction<com.google.api.services.bigquery.model.TableRow> static RowtoBeamRow(GenericRecord record, Schema schema, BigQueryUtils.ConversionOptions options) static RowTries to convert a JSONTableRowfrom BigQuery into a BeamRow.static RowtoBeamRow(Schema rowSchema, com.google.api.services.bigquery.model.TableSchema bqSchema, com.google.api.services.bigquery.model.TableRow jsonBqRow) Tries to parse the JSONTableRowfrom BigQuery.static SchematoGenericAvroSchema(com.google.api.services.bigquery.model.TableSchema tableSchema) Convert a BigQueryTableSchemato AvroSchema.static SchematoGenericAvroSchema(com.google.api.services.bigquery.model.TableSchema tableSchema, Boolean useAvroLogicalTypes) Convert a BigQueryTableSchemato AvroSchema.static SchematoGenericAvroSchema(String schemaName, List<com.google.api.services.bigquery.model.TableFieldSchema> fieldSchemas) Convert a list of BigQueryTableFieldSchemato AvroSchema.static SchematoGenericAvroSchema(String schemaName, List<com.google.api.services.bigquery.model.TableFieldSchema> fieldSchemas, Boolean useAvroLogicalTypes) Convert a list of BigQueryTableFieldSchemato AvroSchema.static @Nullable com.google.api.services.bigquery.model.TableReferencetoTableReference(String fullTableId) Returns aTableReferenceby parsing thefullTableId.static SerializableFunction<Row, com.google.api.services.bigquery.model.TableRow> Convert a BeamRowto a BigQueryTableRow.static <T> SerializableFunction<T, com.google.api.services.bigquery.model.TableRow> toTableRow(SerializableFunction<T, Row> toRow) Convert a Beam schema type to a BigQueryTableRow.static com.google.api.services.bigquery.model.TableRowtoTableRow(Row row) Convert a Beam Row to a BigQuery TableRow.static com.google.api.services.bigquery.model.TableSchematoTableSchema(Schema schema) Convert a BeamSchemato a BigQueryTableSchema.toTableSpec(com.google.api.services.bigquery.model.TableReference tableReference) Returns a String representation of the table destination in the form: `myproject.mydataset.mytable`.static org.apache.beam.runners.core.metrics.ServiceCallMetricwriteCallMetric(com.google.api.services.bigquery.model.TableReference tableReference) Returns a ServiceCallMetric for recording statuses for all BQ responses related to writing elements directly to BigQuery in a process-wide metric.
-
Constructor Details
-
BigQueryUtils
public BigQueryUtils()
-
-
Method Details
-
toTableSchema
Convert a BeamSchemato a BigQueryTableSchema. -
fromTableSchema
public static Schema fromTableSchema(com.google.api.services.bigquery.model.TableSchema tableSchema) Convert a BigQueryTableSchemato a BeamSchema. -
fromTableSchema
public static Schema fromTableSchema(com.google.api.services.bigquery.model.TableSchema tableSchema, BigQueryUtils.SchemaConversionOptions options) Convert a BigQueryTableSchemato a BeamSchema. -
toGenericAvroSchema
public static Schema toGenericAvroSchema(com.google.api.services.bigquery.model.TableSchema tableSchema) Convert a BigQueryTableSchemato AvroSchema. -
fromGenericAvroSchema
public static com.google.api.services.bigquery.model.TableSchema fromGenericAvroSchema(Schema schema) Convert an AvroSchemato a BigQueryTableSchema. -
fromGenericAvroSchema
public static com.google.api.services.bigquery.model.TableSchema fromGenericAvroSchema(Schema schema, Boolean useAvroLogicalTypes) Convert an AvroSchemato a BigQueryTableSchema. -
toGenericAvroSchema
public static Schema toGenericAvroSchema(com.google.api.services.bigquery.model.TableSchema tableSchema, Boolean useAvroLogicalTypes) Convert a BigQueryTableSchemato AvroSchema. -
toGenericAvroSchema
public static Schema toGenericAvroSchema(String schemaName, List<com.google.api.services.bigquery.model.TableFieldSchema> fieldSchemas) Convert a list of BigQueryTableFieldSchemato AvroSchema. -
toGenericAvroSchema
public static Schema toGenericAvroSchema(String schemaName, List<com.google.api.services.bigquery.model.TableFieldSchema> fieldSchemas, Boolean useAvroLogicalTypes) Convert a list of BigQueryTableFieldSchemato AvroSchema. -
tableRowToBeamRow
public static final org.apache.beam.sdk.io.gcp.bigquery.BigQueryIO.TypedRead.ToBeamRowFunction<com.google.api.services.bigquery.model.TableRow> tableRowToBeamRow() -
tableRowFromBeamRow
public static final org.apache.beam.sdk.io.gcp.bigquery.BigQueryIO.TypedRead.FromBeamRowFunction<com.google.api.services.bigquery.model.TableRow> tableRowFromBeamRow() -
toTableRow
public static SerializableFunction<Row,com.google.api.services.bigquery.model.TableRow> toTableRow()Convert a BeamRowto a BigQueryTableRow. -
toTableRow
public static <T> SerializableFunction<T,com.google.api.services.bigquery.model.TableRow> toTableRow(SerializableFunction<T, Row> toRow) Convert a Beam schema type to a BigQueryTableRow. -
toBeamRow
public static Row toBeamRow(GenericRecord record, Schema schema, BigQueryUtils.ConversionOptions options) -
convertGenericRecordToTableRow
@Deprecated public static com.google.api.services.bigquery.model.TableRow convertGenericRecordToTableRow(GenericRecord record, com.google.api.services.bigquery.model.TableSchema tableSchema) Deprecated.Convert generic record to Bq TableRow. -
convertGenericRecordToTableRow
public static com.google.api.services.bigquery.model.TableRow convertGenericRecordToTableRow(GenericRecord record) Convert generic record to Bq TableRow. -
toTableRow
Convert a Beam Row to a BigQuery TableRow. -
toBeamRow
public static Row toBeamRow(Schema rowSchema, com.google.api.services.bigquery.model.TableRow jsonBqRow) Tries to convert a JSONTableRowfrom BigQuery into a BeamRow.Only supports basic types and arrays. Doesn't support date types or structs.
-
toBeamRow
public static Row toBeamRow(Schema rowSchema, com.google.api.services.bigquery.model.TableSchema bqSchema, com.google.api.services.bigquery.model.TableRow jsonBqRow) Tries to parse the JSONTableRowfrom BigQuery.Only supports basic types and arrays. Doesn't support date types.
-
convertAvroFormat
public static @Nullable Object convertAvroFormat(Schema.FieldType beamFieldType, @Nullable Object avroValue, BigQueryUtils.ConversionOptions options) Tries to convert an Avro decoded value to a Beam field value based on the target type of the Beam field.For the Avro formats of BigQuery types, see https://cloud.google.com/bigquery/docs/exporting-data#avro_export_details and https://cloud.google.com/bigquery/docs/loading-data-cloud-storage-avro#avro_conversions
-
toTableReference
public static @Nullable com.google.api.services.bigquery.model.TableReference toTableReference(String fullTableId) Returns aTableReferenceby parsing thefullTableId. If it cannot be parsed properly null is returned.- Parameters:
fullTableId- - Is one of the two forms commonly used to refer to bigquery tables in the beam codebase:- projects/{project_id}/datasets/{dataset_id}/tables/{table_id}
- myproject:mydataset.mytable
- myproject.mydataset.mytable
-
toTableSpec
public static @Nullable String toTableSpec(com.google.api.services.bigquery.model.TableReference tableReference) Returns a String representation of the table destination in the form: `myproject.mydataset.mytable`.- Parameters:
tableReference- - a BigQueryTableIdentifier that may or may not include the project.
-
readCallMetric
public static @Nullable org.apache.beam.runners.core.metrics.ServiceCallMetric readCallMetric(@Nullable com.google.api.services.bigquery.model.TableReference tableReference) Returns a ServiceCallMetric for recording statuses for all BQ API responses related to reading elements directly from BigQuery in a process-wide metric. Such as: calls to readRows, splitReadStream, createReadSession.- Parameters:
tableReference- - The table being read from. Can be a temporary BQ table used to read from a SQL query.
-
writeCallMetric
public static org.apache.beam.runners.core.metrics.ServiceCallMetric writeCallMetric(com.google.api.services.bigquery.model.TableReference tableReference) Returns a ServiceCallMetric for recording statuses for all BQ responses related to writing elements directly to BigQuery in a process-wide metric. Such as: insertAll.- Parameters:
tableReference- - The table being written to.
-
convertGenericRecordToTableRow(GenericRecord)