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

Commitecb2162

Browse files
authored
feat(bigquery): add range partitioning to tables, load jobs, and query jobs (#9477)
* feat(bigquery): add range partitioning to tables, load jobs, and query jobsThese classes and properties add support for the integer rangepartitioning feature. These offer more flexibility in partitioningoptions than time-based partitioning.* Add integer range partitioning classes to bigquery module* Rename PartitionRange to RangeDefinition* Revert "Rename PartitionRange to RangeDefinition"This reverts commit9bb5d8b.* Add Beta disclaimer to range partitioning features.
1 parent32eda79 commitecb2162

File tree

6 files changed

+487
-11
lines changed

6 files changed

+487
-11
lines changed

‎bigquery/docs/reference.rst‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,13 @@ Table
8383
..autosummary::
8484
:toctree: generated
8585

86+
table.PartitionRange
87+
table.RangePartitioning
88+
table.Row
89+
table.RowIterator
8690
table.Table
8791
table.TableListItem
8892
table.TableReference
89-
table.Row
90-
table.RowIterator
9193
table.TimePartitioning
9294
table.TimePartitioningType
9395

‎bigquery/google/cloud/bigquery/__init__.py‎

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,11 @@
7373
fromgoogle.cloud.bigquery.routineimportRoutineArgument
7474
fromgoogle.cloud.bigquery.routineimportRoutineReference
7575
fromgoogle.cloud.bigquery.schemaimportSchemaField
76+
fromgoogle.cloud.bigquery.tableimportPartitionRange
77+
fromgoogle.cloud.bigquery.tableimportRangePartitioning
78+
fromgoogle.cloud.bigquery.tableimportRow
7679
fromgoogle.cloud.bigquery.tableimportTable
7780
fromgoogle.cloud.bigquery.tableimportTableReference
78-
fromgoogle.cloud.bigquery.tableimportRow
7981
fromgoogle.cloud.bigquery.tableimportTimePartitioningType
8082
fromgoogle.cloud.bigquery.tableimportTimePartitioning
8183
fromgoogle.cloud.bigquery.encryption_configurationimportEncryptionConfiguration
@@ -96,16 +98,19 @@
9698
# Tables
9799
"Table",
98100
"TableReference",
101+
"PartitionRange",
102+
"RangePartitioning",
99103
"Row",
104+
"TimePartitioning",
105+
"TimePartitioningType",
106+
# Jobs
100107
"CopyJob",
101108
"CopyJobConfig",
102109
"ExtractJob",
103110
"ExtractJobConfig",
104111
"LoadJob",
105112
"LoadJobConfig",
106113
"UnknownJob",
107-
"TimePartitioningType",
108-
"TimePartitioning",
109114
# Models
110115
"Model",
111116
"ModelReference",

‎bigquery/google/cloud/bigquery/job.py‎

Lines changed: 101 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@
2727
fromgoogle.cloud.bigquery.datasetimportDataset
2828
fromgoogle.cloud.bigquery.datasetimportDatasetListItem
2929
fromgoogle.cloud.bigquery.datasetimportDatasetReference
30+
fromgoogle.cloud.bigquery.encryption_configurationimportEncryptionConfiguration
3031
fromgoogle.cloud.bigquery.external_configimportExternalConfig
32+
fromgoogle.cloud.bigqueryimport_helpers
3133
fromgoogle.cloud.bigquery.queryimport_query_param_from_api_repr
3234
fromgoogle.cloud.bigquery.queryimportArrayQueryParameter
3335
fromgoogle.cloud.bigquery.queryimportScalarQueryParameter
@@ -37,12 +39,11 @@
3739
fromgoogle.cloud.bigquery.routineimportRoutineReference
3840
fromgoogle.cloud.bigquery.schemaimportSchemaField
3941
fromgoogle.cloud.bigquery.tableimport_EmptyRowIterator
42+
fromgoogle.cloud.bigquery.tableimportRangePartitioning
4043
fromgoogle.cloud.bigquery.tableimport_table_arg_to_table_ref
4144
fromgoogle.cloud.bigquery.tableimportTableReference
4245
fromgoogle.cloud.bigquery.tableimportTable
4346
fromgoogle.cloud.bigquery.tableimportTimePartitioning
44-
fromgoogle.cloud.bigqueryimport_helpers
45-
fromgoogle.cloud.bigquery.encryption_configurationimportEncryptionConfiguration
4647

4748
_DONE_STATE="DONE"
4849
_STOPPED_REASON="stopped"
@@ -1180,6 +1181,40 @@ def quote_character(self):
11801181
defquote_character(self,value):
11811182
self._set_sub_prop("quote",value)
11821183

1184+
@property
1185+
defrange_partitioning(self):
1186+
"""Optional[google.cloud.bigquery.table.RangePartitioning]:
1187+
Configures range-based partitioning for destination table.
1188+
1189+
.. note::
1190+
**Beta**. The integer range partitioning feature is in a
1191+
pre-release state and might change or have limited support.
1192+
1193+
Only specify at most one of
1194+
:attr:`~google.cloud.bigquery.job.LoadJobConfig.time_partitioning` or
1195+
:attr:`~google.cloud.bigquery.job.LoadJobConfig.range_partitioning`.
1196+
1197+
Raises:
1198+
ValueError:
1199+
If the value is not
1200+
:class:`~google.cloud.bigquery.table.RangePartitioning` or
1201+
:data:`None`.
1202+
"""
1203+
resource=self._get_sub_prop("rangePartitioning")
1204+
ifresourceisnotNone:
1205+
returnRangePartitioning(_properties=resource)
1206+
1207+
@range_partitioning.setter
1208+
defrange_partitioning(self,value):
1209+
resource=value
1210+
ifisinstance(value,RangePartitioning):
1211+
resource=value._properties
1212+
elifvalueisnotNone:
1213+
raiseValueError(
1214+
"Expected value to be RangePartitioning or None, got {}.".format(value)
1215+
)
1216+
self._set_sub_prop("rangePartitioning",resource)
1217+
11831218
@property
11841219
defschema(self):
11851220
"""List[google.cloud.bigquery.schema.SchemaField]: Schema of the
@@ -1249,6 +1284,10 @@ def source_format(self, value):
12491284
deftime_partitioning(self):
12501285
"""google.cloud.bigquery.table.TimePartitioning: Specifies time-based
12511286
partitioning for the destination table.
1287+
1288+
Only specify at most one of
1289+
:attr:`~google.cloud.bigquery.job.LoadJobConfig.time_partitioning` or
1290+
:attr:`~google.cloud.bigquery.job.LoadJobConfig.range_partitioning`.
12521291
"""
12531292
prop=self._get_sub_prop("timePartitioning")
12541293
ifpropisnotNone:
@@ -1463,6 +1502,13 @@ def destination_table_friendly_name(self):
14631502
"""
14641503
returnself._configuration.destination_table_friendly_name
14651504

1505+
@property
1506+
defrange_partitioning(self):
1507+
"""See
1508+
:attr:`google.cloud.bigquery.job.LoadJobConfig.range_partitioning`.
1509+
"""
1510+
returnself._configuration.range_partitioning
1511+
14661512
@property
14671513
deftime_partitioning(self):
14681514
"""See
@@ -2242,6 +2288,40 @@ def query_parameters(self):
22422288
defquery_parameters(self,values):
22432289
self._set_sub_prop("queryParameters",_to_api_repr_query_parameters(values))
22442290

2291+
@property
2292+
defrange_partitioning(self):
2293+
"""Optional[google.cloud.bigquery.table.RangePartitioning]:
2294+
Configures range-based partitioning for destination table.
2295+
2296+
.. note::
2297+
**Beta**. The integer range partitioning feature is in a
2298+
pre-release state and might change or have limited support.
2299+
2300+
Only specify at most one of
2301+
:attr:`~google.cloud.bigquery.job.LoadJobConfig.time_partitioning` or
2302+
:attr:`~google.cloud.bigquery.job.LoadJobConfig.range_partitioning`.
2303+
2304+
Raises:
2305+
ValueError:
2306+
If the value is not
2307+
:class:`~google.cloud.bigquery.table.RangePartitioning` or
2308+
:data:`None`.
2309+
"""
2310+
resource=self._get_sub_prop("rangePartitioning")
2311+
ifresourceisnotNone:
2312+
returnRangePartitioning(_properties=resource)
2313+
2314+
@range_partitioning.setter
2315+
defrange_partitioning(self,value):
2316+
resource=value
2317+
ifisinstance(value,RangePartitioning):
2318+
resource=value._properties
2319+
elifvalueisnotNone:
2320+
raiseValueError(
2321+
"Expected value to be RangePartitioning or None, got {}.".format(value)
2322+
)
2323+
self._set_sub_prop("rangePartitioning",resource)
2324+
22452325
@property
22462326
defudf_resources(self):
22472327
"""List[google.cloud.bigquery.query.UDFResource]: user
@@ -2318,8 +2398,18 @@ def table_definitions(self, values):
23182398

23192399
@property
23202400
deftime_partitioning(self):
2321-
"""google.cloud.bigquery.table.TimePartitioning: Specifies time-based
2322-
partitioning for the destination table.
2401+
"""Optional[google.cloud.bigquery.table.TimePartitioning]: Specifies
2402+
time-based partitioning for the destination table.
2403+
2404+
Only specify at most one of
2405+
:attr:`~google.cloud.bigquery.job.LoadJobConfig.time_partitioning` or
2406+
:attr:`~google.cloud.bigquery.job.LoadJobConfig.range_partitioning`.
2407+
2408+
Raises:
2409+
ValueError:
2410+
If the value is not
2411+
:class:`~google.cloud.bigquery.table.TimePartitioning` or
2412+
:data:`None`.
23232413
"""
23242414
prop=self._get_sub_prop("timePartitioning")
23252415
ifpropisnotNone:
@@ -2552,6 +2642,13 @@ def maximum_bytes_billed(self):
25522642
"""
25532643
returnself._configuration.maximum_bytes_billed
25542644

2645+
@property
2646+
defrange_partitioning(self):
2647+
"""See
2648+
:attr:`google.cloud.bigquery.job.QueryJobConfig.range_partitioning`.
2649+
"""
2650+
returnself._configuration.range_partitioning
2651+
25552652
@property
25562653
deftable_definitions(self):
25572654
"""See

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp