public abstract class RowMutationInformation
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
RowMutationInformation.MutationType |
Constructor and Description |
---|
RowMutationInformation() |
Modifier and Type | Method and Description |
---|---|
abstract java.lang.String |
getChangeSequenceNumber()
The value supplied to the BigQuery
_CHANGE_SEQUENCE_NUMBER pseudo-column. |
abstract RowMutationInformation.MutationType |
getMutationType() |
abstract @Nullable java.lang.Long |
getSequenceNumber()
Deprecated.
|
static RowMutationInformation |
of(RowMutationInformation.MutationType mutationType,
long sequenceNumber)
Deprecated.
|
static RowMutationInformation |
of(RowMutationInformation.MutationType mutationType,
java.lang.String changeSequenceNumber)
Instantiate
RowMutationInformation with RowMutationInformation.MutationType and the , which sets the BigQuery API _CHANGE_SEQUENCE_NUMBER pseudo
column, enabling custom user-supplied ordering of RowMutation s. |
public abstract RowMutationInformation.MutationType getMutationType()
@Deprecated public abstract @Nullable java.lang.Long getSequenceNumber()
getChangeSequenceNumber()
replaces this field as the BigQuery API instead supports the use of
a string.public abstract java.lang.String getChangeSequenceNumber()
_CHANGE_SEQUENCE_NUMBER
pseudo-column. See of(MutationType, String)
for more details.@Deprecated public static RowMutationInformation of(RowMutationInformation.MutationType mutationType, long sequenceNumber)
RowMutationInformation
with RowMutationInformation.MutationType
and the . @deprecated - instantiates RowMutationInformation
via of(MutationType, String)
forwarding the value using Long.toHexString(long)
. values < 0
will throw an error.public static RowMutationInformation of(RowMutationInformation.MutationType mutationType, java.lang.String changeSequenceNumber)
RowMutationInformation
with RowMutationInformation.MutationType
and the , which sets the BigQuery API _CHANGE_SEQUENCE_NUMBER
pseudo
column, enabling custom user-supplied ordering of RowMutation
s.
Requirements for the :
String
in hexadecimal format
/
16
hexadecimal characters: 0-9
, A-F
,
or a-f
0/0/0/0
and FFFFFFFFFFFFFFFF/FFFFFFFFFFFFFFFF/FFFFFFFFFFFFFFFF/FFFFFFFFFFFFFFFF
Below are some scenarios:
Record #1: | Record #2: | BigQuery API compares as |
---|---|---|
"B" |
"ABC" |
Record #2 is considered the latest record: 'ABC' > 'B' (i.e. '2748' > '11') |
"FFF/B" |
"FFF/ABC" |
Record #2 is considered the latest record: "FFF/B" > "FFF/ABC" (i.e. "4095/2748" > "4095/11") |
"BA/FFFFFFFF" |
"ABC" |
Record #2 is considered the latest record: "ABC" > "BA/FFFFFFFF" (i.e. "2748" > "186/4294967295") |
"FFF/ABC" |
"ABC" |
Record #1 is considered the latest record: "FFF/ABC" > "ABC" (i.e. "4095/2748" > "2748") |
"FFF" |
"FFF" |
Record #1 and #2 change sequence number identical; BigQuery uses system ingestion time to take precedence over previously ingested records. |
Below are some code examples.
RowMutationInformation.of(UPSERT, "FFF/ABC")
Hex.encodeHexString(byte[])
(Java
17+ users can use HexFormat
)RowMutationInformation.of(UPSERT,
Hex.encodeHexString("2024-04-30 11:19:44 UTC".getBytes(StandardCharsets.UTF_8)))
Long.toHexString(long)
: RowMutationInformation.of(DELETE,
Long.toHexString(123L))