@@ -44,6 +44,7 @@ def _write_batch(
4444 version : int ,
4545 batch : List [Any ],
4646 boto3_primitives : _utils .Boto3PrimitivesType ,
47+ measure_name : Optional [str ] = None ,
4748) -> List [Dict [str , str ]]:
4849 boto3_session : boto3 .Session = _utils .boto3_from_primitives (primitives = boto3_primitives )
4950 client : boto3 .client = _utils .client (
@@ -67,11 +68,11 @@ def _write_batch(
6768 "Version" : version ,
6869 }
6970 if len (measure_cols_names ) == 1 :
70- record ["MeasureName" ] = measure_cols_names [0 ]
71+ record ["MeasureName" ] = measure_name if measure_name else measure_cols_names [0 ]
7172 record ["MeasureValueType" ] = measure_types [0 ]
7273 record ["MeasureValue" ] = str (rec [measure_cols_loc ])
7374 else :
74- record ["MeasureName" ] = measure_cols_names [0 ]
75+ record ["MeasureName" ] = measure_name if measure_name else measure_cols_names [0 ]
7576 record ["MeasureValueType" ] = "MULTI"
7677 record ["MeasureValues" ] = [
7778 _format_measure (measure_name , measure_value , measure_value_type )
@@ -192,6 +193,7 @@ def write(
192193 dimensions_cols : List [str ],
193194 version : int = 1 ,
194195 num_threads : int = 32 ,
196+ measure_name : Optional [str ] = None ,
195197 boto3_session : Optional [boto3 .Session ] = None ,
196198) -> List [Dict [str , str ]]:
197199 """Store a Pandas DataFrame into a Amazon Timestream table.
@@ -213,6 +215,9 @@ def write(
213215 version : int
214216 Version number used for upserts.
215217 Documentation https://docs.aws.amazon.com/timestream/latest/developerguide/API_WriteRecords.html.
218+ measure_name : Optional[str]
219+ Name that represents the data attribute of the time series.
220+ Overrides ``measure_col`` if specified.
216221 num_threads : str
217222 Number of thread to be used for concurrent writing.
218223 boto3_session : boto3.Session(), optional
@@ -248,8 +253,9 @@ def write(
248253 >>> assert len(rejected_records) == 0
249254
250255 """
251- measure_cols_names : List [ str ] = measure_col if isinstance (measure_col , list ) else [measure_col ]
256+ measure_cols_names = measure_col if isinstance (measure_col , list ) else [measure_col ]
252257 _logger .debug ("measure_cols_names: %s" , measure_cols_names )
258+
253259 measure_types : List [str ] = [
254260 _data_types .timestream_type_from_pandas (df [[measure_col_name ]]) for measure_col_name in measure_cols_names
255261 ]
@@ -270,6 +276,7 @@ def write(
270276 itertools .repeat (version ),
271277 batches ,
272278 itertools .repeat (_utils .boto3_to_primitives (boto3_session = boto3_session )),
279+ itertools .repeat (measure_name ),
273280 )
274281 )
275282 return [item for sublist in res for item in sublist ]
0 commit comments