更新数据库 - Amazon Timestream
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

从2025年6月20日起,亚马逊Timestream版 LiveAnalytics 将不再向新客户开放。如果您想使用亚马逊 Timestream LiveAnalytics,请在该日期之前注册。现有客户可以继续照常使用该服务。有关更多信息,请参阅 Amazon Timestream 以了解 LiveAnalytics 可用性变更。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

更新数据库

您可以使用以下代码片段来更新数据库。

注意

这些代码片段基于上的完整示例应用程序。GitHub有关如何开始使用示例应用程序的更多信息,请参阅示例应用程序

Java
public void updateDatabase(String kmsId) { System.out.println("Updating kmsId to " + kmsId); UpdateDatabaseRequest request = new UpdateDatabaseRequest(); request.setDatabaseName(DATABASE_NAME); request.setKmsKeyId(kmsId); try { UpdateDatabaseResult result = amazonTimestreamWrite.updateDatabase(request); System.out.println("Update Database complete"); } catch (final ValidationException e) { System.out.println("Update database failed:"); e.printStackTrace(); } catch (final ResourceNotFoundException e) { System.out.println("Database " + DATABASE_NAME + " doesn't exist = " + e); } catch (final Exception e) { System.out.println("Could not update Database " + DATABASE_NAME + " = " + e); throw e; } }
Java v2
public void updateDatabase(String kmsKeyId) { if (kmsKeyId == null) { System.out.println("Skipping UpdateDatabase because KmsKeyId was not given"); return; } System.out.println("Updating database"); UpdateDatabaseRequest request = UpdateDatabaseRequest.builder() .databaseName(DATABASE_NAME) .kmsKeyId(kmsKeyId) .build(); try { timestreamWriteClient.updateDatabase(request); System.out.println("Database [" + DATABASE_NAME + "] updated successfully with kmsKeyId " + kmsKeyId); } catch (ResourceNotFoundException e) { System.out.println("Database [" + DATABASE_NAME + "] does not exist. Skipping UpdateDatabase"); } catch (Exception e) { System.out.println("UpdateDatabase failed: " + e); } }
Go
// Update Database. updateDatabaseInput := &timestreamwrite.UpdateDatabaseInput { DatabaseName: aws.String(*databaseName), KmsKeyId: aws.String(*kmsKeyId), } updateDatabaseOutput, err := writeSvc.UpdateDatabase(updateDatabaseInput) if err != nil { fmt.Println("Error:") fmt.Println(err) } else { fmt.Println("Update database is successful, below is the output:") fmt.Println(updateDatabaseOutput) }
Python
def update_database(self, kms_id): print("Updating database") try: result = self.client.update_database(DatabaseName=Constant.DATABASE_NAME, KmsKeyId=kms_id) print("Database [%s] was updated to use kms [%s] successfully" % (Constant.DATABASE_NAME, result['Database']['KmsKeyId'])) except self.client.exceptions.ResourceNotFoundException: print("Database doesn't exist") except Exception as err: print("Update database failed:", err)
Node.js

以下代码段使用 Amazon 适用于 JavaScript v3 的 SDK。有关如何安装客户端和用法的更多信息,请参阅 Timestream Write Client- Amazon 适用于 JavaScript v3 的 SDK

另请参阅类 UpdateDatabaseCommandUpdateDatabase

import { TimestreamWriteClient, UpdateDatabaseCommand } from "@aws-sdk/client-timestream-write"; const writeClient = new TimestreamWriteClient({ region: "us-east-1" }); let updatedKmsKeyId = "<updatedKmsKeyId>"; const params = { DatabaseName: "testDbFromNode", KmsKeyId: updatedKmsKeyId }; const command = new UpdateDatabaseCommand(params); try { const data = await writeClient.send(command); console.log(`Database ${data.Database.DatabaseName} updated kmsKeyId to ${updatedKmsKeyId}`); } catch (error) { if (error.code === 'ResourceNotFoundException') { console.log("Database doesn't exist."); } else { console.log("Update database failed.", error); } }

以下代码段使用适用于 JavaScript V2 的 Amazon SDK 风格。它基于 Node.js 示例 Amazon Timestream 中的示例 LiveAnalytics 应用程序,供其上使用。 GitHub

async function updateDatabase(updatedKmsKeyId) { if (updatedKmsKeyId === undefined) { console.log("Skipping UpdateDatabase; KmsKeyId was not given"); return; } console.log("Updating Database"); const params = { DatabaseName: constants.DATABASE_NAME, KmsKeyId: updatedKmsKeyId } const promise = writeClient.updateDatabase(params).promise(); await promise.then( (data) => { console.log(`Database ${data.Database.DatabaseName} updated kmsKeyId to ${updatedKmsKeyId}`); }, (err) => { if (err.code === 'ResourceNotFoundException') { console.log("Database doesn't exist."); } else { console.log("Update database failed.", err); } } ); }
.NET
public async Task UpdateDatabase(String updatedKmsKeyId) { Console.WriteLine("Updating Database"); try { var updateDatabaseRequest = new UpdateDatabaseRequest { DatabaseName = Constants.DATABASE_NAME, KmsKeyId = updatedKmsKeyId }; UpdateDatabaseResponse response = await writeClient.UpdateDatabaseAsync(updateDatabaseRequest); Console.WriteLine($"Database {Constants.DATABASE_NAME} updated with KmsKeyId {updatedKmsKeyId}"); } catch (ResourceNotFoundException) { Console.WriteLine("Database does not exist."); } catch (Exception e) { Console.WriteLine("Update database failed: " + e.ToString()); } } private void PrintDatabases(List<Database> databases) { foreach (Database database in databases) Console.WriteLine($"Database:{database.DatabaseName}"); }