in scio-google-cloud-platform/src/main/scala/com/spotify/scio/bigquery/BigQueryIO.scala [787:847]
@inline final def apply[T](
method: WriteMethod = DefaultMethod,
writeDisposition: WriteDisposition = DefaultWriteDisposition,
createDisposition: CreateDisposition = DefaultCreateDisposition,
timePartitioning: TimePartitioning = DefaultTimePartitioning,
clustering: Clustering = DefaultClustering,
triggeringFrequency: Duration = DefaultTriggeringFrequency,
sharding: Sharding = DefaultSharding,
failedInsertRetryPolicy: InsertRetryPolicy = DefaultFailedInsertRetryPolicy,
successfulInsertsPropagation: Boolean = DefaultSuccessfulInsertsPropagation,
extendedErrorInfo: Boolean = DefaultExtendedErrorInfo,
configOverride: ConfigOverride[T] = DefaultConfigOverride
): WriteParam[T] = new WriteParam(
method,
writeDisposition,
createDisposition,
timePartitioning,
clustering,
triggeringFrequency,
sharding,
failedInsertRetryPolicy,
successfulInsertsPropagation,
extendedErrorInfo,
configOverride
)
implicit private[Table] def typedTableWriteParam[T: TypeTag, Info](
params: Table.WriteParam[T]
): BigQueryTypedTable.WriteParam[T] =
BigQueryTypedTable.WriteParam(
params.method,
BigQueryType[T].schema,
params.writeDisposition,
params.createDisposition,
BigQueryType[T].tableDescription.orNull,
params.timePartitioning,
params.clustering,
params.triggeringFrequency,
params.sharding,
params.failedInsertRetryPolicy,
params.successfulInsertsPropagation,
params.extendedErrorInfo,
params.configOverride
)
}
}
/** Get a typed SCollection for a BigQuery table using the storage API. */
final case class Storage[T <: HasAnnotation: TypeTag: Coder](
table: STable,
selectedFields: List[String],
rowRestriction: Option[String]
) extends BigQueryIO[T] {
override type ReadP = Unit
override type WriteP = Nothing // ReadOnly
override def testId: String =
s"BigQueryIO(${table.spec}, List(${selectedFields.mkString(",")}), $rowRestriction)"
override protected def read(sc: ScioContext, params: ReadP): SCollection[T] = {