Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitbbb86fd

Browse files
authored
1 parent7772c2a commitbbb86fd

File tree

8 files changed

+264
-1
lines changed

8 files changed

+264
-1
lines changed

‎google-cloud-bigquery/clirr-ignored-differences.xml‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,4 +104,9 @@
104104
<className>com/google/cloud/bigquery/IndexUnusedReason*</className>
105105
<method>*BaseTable(*)</method>
106106
</difference>
107+
<difference>
108+
<differenceType>7013</differenceType>
109+
<className>com/google/cloud/bigquery/DatasetInfo*</className>
110+
<method>*setExternalDatasetReference(*)</method>
111+
</difference>
107112
</differences>

‎google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,12 @@ public Builder setDefaultCollation(String defaultCollation) {
152152
returnthis;
153153
}
154154

155+
@Override
156+
publicBuildersetExternalDatasetReference(ExternalDatasetReferenceexternalDatasetReference) {
157+
infoBuilder.setExternalDatasetReference(externalDatasetReference);
158+
returnthis;
159+
}
160+
155161
@Override
156162
publicDatasetbuild() {
157163
returnnewDataset(bigquery,infoBuilder);

‎google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java‎

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ public Dataset apply(DatasetInfo datasetInfo) {
7373
privatefinalEncryptionConfigurationdefaultEncryptionConfiguration;
7474
privatefinalLongdefaultPartitionExpirationMs;
7575
privatefinalStringdefaultCollation;
76+
privatefinalExternalDatasetReferenceexternalDatasetReference;
7677

7778
/** A builder for {@code DatasetInfo} objects. */
7879
publicabstractstaticclassBuilder {
@@ -127,6 +128,13 @@ public abstract static class Builder {
127128

128129
publicabstractBuildersetLabels(Map<String,String>labels);
129130

131+
/**
132+
* Optional. Information about the external metadata storage where the dataset is defined.
133+
* Filled out when the dataset type is EXTERNAL
134+
*/
135+
publicabstractBuildersetExternalDatasetReference(
136+
ExternalDatasetReferenceexternalDatasetReference);
137+
130138
/**
131139
* The default encryption key for all tables in the dataset. Once this property is set, all
132140
* newly-created partitioned tables in the dataset will have encryption key set to this value,
@@ -183,6 +191,7 @@ static final class BuilderImpl extends Builder {
183191
privateEncryptionConfigurationdefaultEncryptionConfiguration;
184192
privateLongdefaultPartitionExpirationMs;
185193
privateStringdefaultCollation;
194+
privateExternalDatasetReferenceexternalDatasetReference;
186195

187196
BuilderImpl() {}
188197

@@ -202,6 +211,7 @@ static final class BuilderImpl extends Builder {
202211
this.defaultEncryptionConfiguration =datasetInfo.defaultEncryptionConfiguration;
203212
this.defaultPartitionExpirationMs =datasetInfo.defaultPartitionExpirationMs;
204213
this.defaultCollation =datasetInfo.defaultCollation;
214+
this.externalDatasetReference =datasetInfo.externalDatasetReference;
205215
}
206216

207217
BuilderImpl(com.google.api.services.bigquery.model.DatasetdatasetPb) {
@@ -236,6 +246,10 @@ public Acl apply(Dataset.Access accessPb) {
236246
}
237247
this.defaultPartitionExpirationMs =datasetPb.getDefaultPartitionExpirationMs();
238248
this.defaultCollation =datasetPb.getDefaultCollation();
249+
if (datasetPb.getExternalDatasetReference() !=null) {
250+
this.externalDatasetReference =
251+
ExternalDatasetReference.fromPb(datasetPb.getExternalDatasetReference());
252+
}
239253
}
240254

241255
@Override
@@ -336,6 +350,12 @@ public Builder setDefaultCollation(String defaultCollation) {
336350
returnthis;
337351
}
338352

353+
@Override
354+
publicBuildersetExternalDatasetReference(ExternalDatasetReferenceexternalDatasetReference) {
355+
this.externalDatasetReference =externalDatasetReference;
356+
returnthis;
357+
}
358+
339359
@Override
340360
publicDatasetInfobuild() {
341361
returnnewDatasetInfo(this);
@@ -358,6 +378,7 @@ public DatasetInfo build() {
358378
defaultEncryptionConfiguration =builder.defaultEncryptionConfiguration;
359379
defaultPartitionExpirationMs =builder.defaultPartitionExpirationMs;
360380
defaultCollation =builder.defaultCollation;
381+
externalDatasetReference =builder.externalDatasetReference;
361382
}
362383

363384
/** Returns the dataset identity. */
@@ -487,6 +508,14 @@ public String getDefaultCollation() {
487508
returndefaultCollation;
488509
}
489510

511+
/**
512+
* Returns information about the external metadata storage where the dataset is defined. Filled
513+
* out when the dataset type is EXTERNAL.
514+
*/
515+
publicExternalDatasetReferencegetExternalDatasetReference() {
516+
returnexternalDatasetReference;
517+
}
518+
490519
/** Returns a builder for the dataset object. */
491520
publicBuildertoBuilder() {
492521
returnnewBuilderImpl(this);
@@ -510,6 +539,7 @@ public String toString() {
510539
.add("defaultEncryptionConfiguration",defaultEncryptionConfiguration)
511540
.add("defaultPartitionExpirationMs",defaultPartitionExpirationMs)
512541
.add("defaultCollation",defaultCollation)
542+
.add("externalDatasetReference",externalDatasetReference)
513543
.toString();
514544
}
515545

@@ -588,6 +618,9 @@ public Dataset.Access apply(Acl acl) {
588618
if (defaultCollation !=null) {
589619
datasetPb.setDefaultCollation(defaultCollation);
590620
}
621+
if (externalDatasetReference !=null) {
622+
datasetPb.setExternalDatasetReference(externalDatasetReference.toPb());
623+
}
591624
returndatasetPb;
592625
}
593626

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
/*
2+
* Copyright 2023 Google LLC
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
packagecom.google.cloud.bigquery;
18+
19+
importcom.google.auto.value.AutoValue;
20+
importcom.google.common.annotations.VisibleForTesting;
21+
importjava.io.Serializable;
22+
importjavax.annotation.Nullable;
23+
24+
/** Configures the access a dataset defined in an external metadata storage. */
25+
@AutoValue
26+
publicabstractclassExternalDatasetReferenceimplementsSerializable {
27+
28+
publicstaticExternalDatasetReference.BuildernewBuilder() {
29+
returnnewAutoValue_ExternalDatasetReference.Builder();
30+
}
31+
32+
staticExternalDatasetReferencefromPb(
33+
com.google.api.services.bigquery.model.ExternalDatasetReferenceexternalDatasetReference) {
34+
ExternalDatasetReference.Builderbuilder =newBuilder();
35+
36+
if (externalDatasetReference.getConnection() !=null) {
37+
builder.setConnection(externalDatasetReference.getConnection());
38+
}
39+
if (externalDatasetReference.getExternalSource() !=null) {
40+
builder.setExternalSource(externalDatasetReference.getExternalSource());
41+
}
42+
43+
returnbuilder.build();
44+
}
45+
46+
publiccom.google.api.services.bigquery.model.ExternalDatasetReferencetoPb() {
47+
com.google.api.services.bigquery.model.ExternalDatasetReferenceexternalDatasetReference =
48+
newcom.google.api.services.bigquery.model.ExternalDatasetReference();
49+
50+
externalDatasetReference.setConnection(getConnection());
51+
externalDatasetReference.setExternalSource(getExternalSource());
52+
returnexternalDatasetReference;
53+
}
54+
55+
@Nullable
56+
publicabstractStringgetConnection();
57+
58+
@Nullable
59+
publicabstractStringgetExternalSource();
60+
61+
/** Returns a builder for an ExternalDatasetReference. */
62+
@VisibleForTesting
63+
publicabstractExternalDatasetReference.BuildertoBuilder();
64+
65+
@AutoValue.Builder
66+
publicabstractstaticclassBuilder {
67+
/**
68+
* The connection id that is used to access the external_source. Format:
69+
* projects/{project_id}/locations/{location_id}/connections/{connection_id} *
70+
*/
71+
publicabstractExternalDatasetReference.BuildersetConnection(Stringconnection);
72+
73+
/** External source that backs this dataset * */
74+
publicabstractExternalDatasetReference.BuildersetExternalSource(StringexternalSource);
75+
76+
/** Creates a {@code ExternalDatasetReference} object. */
77+
publicabstractExternalDatasetReferencebuild();
78+
}
79+
}

‎google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java‎

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,12 @@ public class DatasetInfoTest {
5858
privatestaticfinalDatasetIdDATASET_ID_COMPLETE =DatasetId.of("project","dataset");
5959
privatestaticfinalEncryptionConfigurationDATASET_ENCRYPTION_CONFIGURATION =
6060
EncryptionConfiguration.newBuilder().setKmsKeyName("KMS_KEY_1").build();
61+
62+
privatestaticfinalExternalDatasetReferenceEXTERNAL_DATASET_REFERENCE =
63+
ExternalDatasetReference.newBuilder()
64+
.setExternalSource("source")
65+
.setConnection("connection")
66+
.build();
6167
privatestaticfinalDatasetInfoDATASET_INFO =
6268
DatasetInfo.newBuilder(DATASET_ID)
6369
.setAcl(ACCESS_RULES)
@@ -82,6 +88,8 @@ public class DatasetInfoTest {
8288
.build();
8389
privatestaticfinalDatasetInfoDATASET_INFO_COMPLETE_WITH_IAM_MEMBER =
8490
DATASET_INFO.toBuilder().setAcl(ACCESS_RULES_IAM_MEMBER).build();
91+
privatestaticfinalDatasetInfoDATASET_INFO_COMPLETE_WITH_EXTERNAL_DATASET_REFERENCE =
92+
DATASET_INFO.toBuilder().setExternalDatasetReference(EXTERNAL_DATASET_REFERENCE).build();
8593

8694
@Test
8795
publicvoidtestToBuilder() {
@@ -108,6 +116,28 @@ public void testToBuilderIncomplete() {
108116
assertEquals(datasetInfo,datasetInfo.toBuilder().build());
109117
}
110118

119+
@Test
120+
publicvoidtestToBuilderWithExternalDatasetReference() {
121+
compareDatasets(
122+
DATASET_INFO_COMPLETE_WITH_EXTERNAL_DATASET_REFERENCE,
123+
DATASET_INFO_COMPLETE_WITH_EXTERNAL_DATASET_REFERENCE.toBuilder().build());
124+
125+
ExternalDatasetReferenceexternalDatasetReference =
126+
ExternalDatasetReference.newBuilder()
127+
.setExternalSource("source2")
128+
.setConnection("connection2")
129+
.build();
130+
DatasetInfodatasetInfo =
131+
DATASET_INFO_COMPLETE_WITH_EXTERNAL_DATASET_REFERENCE
132+
.toBuilder()
133+
.setExternalDatasetReference(externalDatasetReference)
134+
.build();
135+
assertEquals(externalDatasetReference,datasetInfo.getExternalDatasetReference());
136+
datasetInfo =
137+
datasetInfo.toBuilder().setExternalDatasetReference(EXTERNAL_DATASET_REFERENCE).build();
138+
compareDatasets(DATASET_INFO_COMPLETE_WITH_EXTERNAL_DATASET_REFERENCE,datasetInfo);
139+
}
140+
111141
@Test
112142
publicvoidtestBuilder() {
113143
assertNull(DATASET_INFO.getDatasetId().getProject());
@@ -137,6 +167,9 @@ public void testBuilder() {
137167
assertEquals(LOCATION,DATASET_INFO_COMPLETE.getLocation());
138168
assertEquals(SELF_LINK,DATASET_INFO_COMPLETE.getSelfLink());
139169
assertEquals(LABELS,DATASET_INFO_COMPLETE.getLabels());
170+
assertEquals(
171+
EXTERNAL_DATASET_REFERENCE,
172+
DATASET_INFO_COMPLETE_WITH_EXTERNAL_DATASET_REFERENCE.getExternalDatasetReference());
140173
}
141174

142175
@Test
@@ -156,6 +189,7 @@ public void testOf() {
156189
assertNull(datasetInfo.getDefaultEncryptionConfiguration());
157190
assertNull(datasetInfo.getDefaultPartitionExpirationMs());
158191
assertTrue(datasetInfo.getLabels().isEmpty());
192+
assertNull(datasetInfo.getExternalDatasetReference());
159193

160194
datasetInfo =DatasetInfo.of(DATASET_ID);
161195
assertEquals(DATASET_ID,datasetInfo.getDatasetId());
@@ -172,11 +206,15 @@ public void testOf() {
172206
assertNull(datasetInfo.getDefaultEncryptionConfiguration());
173207
assertNull(datasetInfo.getDefaultPartitionExpirationMs());
174208
assertTrue(datasetInfo.getLabels().isEmpty());
209+
assertNull(datasetInfo.getExternalDatasetReference());
175210
}
176211

177212
@Test
178213
publicvoidtestToPbAndFromPb() {
179214
compareDatasets(DATASET_INFO_COMPLETE,DatasetInfo.fromPb(DATASET_INFO_COMPLETE.toPb()));
215+
compareDatasets(
216+
DATASET_INFO_COMPLETE_WITH_EXTERNAL_DATASET_REFERENCE,
217+
DatasetInfo.fromPb(DATASET_INFO_COMPLETE_WITH_EXTERNAL_DATASET_REFERENCE.toPb()));
180218
DatasetInfodatasetInfo =DatasetInfo.newBuilder("project","dataset").build();
181219
compareDatasets(datasetInfo,DatasetInfo.fromPb(datasetInfo.toPb()));
182220
}
@@ -204,5 +242,6 @@ private void compareDatasets(DatasetInfo expected, DatasetInfo value) {
204242
expected.getDefaultEncryptionConfiguration(),value.getDefaultEncryptionConfiguration());
205243
assertEquals(
206244
expected.getDefaultPartitionExpirationMs(),value.getDefaultPartitionExpirationMs());
245+
assertEquals(expected.getExternalDatasetReference(),value.getExternalDatasetReference());
207246
}
208247
}

‎google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java‎

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,11 @@ public class DatasetTest {
8383
TableInfo.newBuilder(
8484
TableId.of(NEW_PROJECT_ID,"dataset","table3"),EXTERNAL_TABLE_DEFINITION)
8585
.build();
86+
privatestaticfinalExternalDatasetReferenceEXTERNAL_DATASET_REFERENCE =
87+
ExternalDatasetReference.newBuilder()
88+
.setExternalSource("source")
89+
.setConnection("connection")
90+
.build();
8691

8792
@RulepublicMockitoRulerule;
8893

@@ -319,6 +324,31 @@ public void testToAndFromPb() {
319324
compareDataset(expectedDataset,Dataset.fromPb(bigquery,expectedDataset.toPb()));
320325
}
321326

327+
@Test
328+
publicvoidtestExternalDatasetReference() {
329+
DatasetdatasetWithExternalDatasetReference =
330+
newDataset.Builder(bigquery,DATASET_ID)
331+
.setAcl(ACCESS_RULES)
332+
.setCreationTime(CREATION_TIME)
333+
.setDefaultTableLifetime(DEFAULT_TABLE_EXPIRATION)
334+
.setDescription(DESCRIPTION)
335+
.setEtag(ETAG)
336+
.setFriendlyName(FRIENDLY_NAME)
337+
.setGeneratedId(GENERATED_ID)
338+
.setLastModified(LAST_MODIFIED)
339+
.setLocation(LOCATION)
340+
.setSelfLink(SELF_LINK)
341+
.setLabels(LABELS)
342+
.setExternalDatasetReference(EXTERNAL_DATASET_REFERENCE)
343+
.build();
344+
assertEquals(
345+
EXTERNAL_DATASET_REFERENCE,
346+
datasetWithExternalDatasetReference.getExternalDatasetReference());
347+
compareDataset(
348+
datasetWithExternalDatasetReference,
349+
datasetWithExternalDatasetReference.toBuilder().build());
350+
}
351+
322352
privatevoidcompareDataset(Datasetexpected,Datasetvalue) {
323353
assertEquals(expected,value);
324354
compareDatasetInfo(expected,value);
@@ -338,5 +368,6 @@ private void compareDatasetInfo(DatasetInfo expected, DatasetInfo value) {
338368
assertEquals(expected.getCreationTime(),value.getCreationTime());
339369
assertEquals(expected.getDefaultTableLifetime(),value.getDefaultTableLifetime());
340370
assertEquals(expected.getLastModified(),value.getLastModified());
371+
assertEquals(expected.getExternalDatasetReference(),value.getExternalDatasetReference());
341372
}
342373
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp