写入 SDK 客户端 - Amazon Timestream

要获得与亚马逊 Timestream 类似的功能 LiveAnalytics,可以考虑适用于 InfluxDB 的亚马逊 Timestream。适用于 InfluxDB 的 Amazon Timestream 提供简化的数据摄取和个位数毫秒级的查询响应时间,以实现实时分析。点击此处了解更多信息。

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

写入 SDK 客户端

可使用以下代码段创建用于写入 SDK 的 Timestream 客户端。写入 SDK 用于执行 CRUD 操作,并将时间序列数据插入到 Timestream 中。

注意

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

Java
private static AmazonTimestreamWrite buildWriteClient() { final ClientConfiguration clientConfiguration = new ClientConfiguration() .withMaxConnections(5000) .withRequestTimeout(20 * 1000) .withMaxErrorRetry(10); return AmazonTimestreamWriteClientBuilder .standard() .withRegion("us-east-1") .withClientConfiguration(clientConfiguration) .build(); }
Java v2
private static TimestreamWriteClient buildWriteClient() { ApacheHttpClient.Builder httpClientBuilder = ApacheHttpClient.builder(); httpClientBuilder.maxConnections(5000); RetryPolicy.Builder retryPolicy = RetryPolicy.builder(); retryPolicy.numRetries(10); ClientOverrideConfiguration.Builder overrideConfig = ClientOverrideConfiguration.builder(); overrideConfig.apiCallAttemptTimeout(Duration.ofSeconds(20)); overrideConfig.retryPolicy(retryPolicy.build()); return TimestreamWriteClient.builder() .httpClientBuilder(httpClientBuilder) .overrideConfiguration(overrideConfig.build()) .region(Region.US_EAST_1) .build(); }
Go
tr := &http.Transport{ ResponseHeaderTimeout: 20 * time.Second, // Using DefaultTransport values for other parameters: https://golang.org/pkg/net/http/#RoundTripper Proxy: http.ProxyFromEnvironment, DialContext: (&net.Dialer{ KeepAlive: 30 * time.Second, DualStack: true, Timeout: 30 * time.Second, }).DialContext, MaxIdleConns: 100, IdleConnTimeout: 90 * time.Second, TLSHandshakeTimeout: 10 * time.Second, ExpectContinueTimeout: 1 * time.Second, } // So client makes HTTP/2 requests http2.ConfigureTransport(tr) sess, err := session.NewSession(&aws.Config{ Region: aws.String("us-east-1"), MaxRetries: aws.Int(10), HTTPClient: &http.Client{ Transport: tr }}) writeSvc := timestreamwrite.New(sess)
Python
write_client = session.client('timestream-write', config=Config(read_timeout=20, max_pool_connections = 5000, retries={'max_attempts': 10})) 
Node.js

以下代码段使用 AWS SDK for JavaScript v3。有关如何安装客户端和使用情况的更多信息,请参阅 Timestream 写入客户端:AWS SDK for JavaScript v3

此处显示额外的命令导入。创建客户端不需要 CreateDatabaseCommand 导入。

import { TimestreamWriteClient, CreateDatabaseCommand } from "@aws-sdk/client-timestream-write"; const writeClient = new TimestreamWriteClient({ region: "us-east-1" });

以下代码段使用 AWS SDK for JavaScript V2 风格。该代码段基于示例应用程序,该应用程序位于 GitHub 上的 Node.js 示例适用于 LiveAnalytics 的 Amazon Timestream 应用程序

var https = require('https'); var agent = new https.Agent({ maxSockets: 5000 }); writeClient = new AWS.TimestreamWrite({ maxRetries: 10, httpOptions: { timeout: 20000, agent: agent } });
.NET
var writeClientConfig = new AmazonTimestreamWriteConfig { RegionEndpoint = RegionEndpoint.USEast1, Timeout = TimeSpan.FromSeconds(20), MaxErrorRetry = 10 }; var writeClient = new AmazonTimestreamWriteClient(writeClientConfig);

建议使用以下配置。

  • 将 SDK 重试计数设置为 10

  • 使用 SDK DEFAULT_BACKOFF_STRATEGY

  • RequestTimeout 设置为 20 秒。

  • 将最大连接数设置为 5000 或更高。