Timescale Cloud:性能、规模、企业级
自托管产品
MST
有几种不同的方法可以将数据摄取到 TimescaleDB 托管服务中。本节包含以下说明:
在开始之前,请确保您已创建了 TimescaleDB 托管服务,并且可以使用 psql
连接到它。
使用
psql
连接到您的服务。psql -h <HOSTNAME> -p <PORT> -U <USERNAME> -W -d <DATABASE_NAME>您可以从 MST 控制面板
的服务概览中检索服务 URL、端口和登录凭据。
为您的数据创建一个新数据库。在此示例中,新数据库名为
new_db
CREATE DATABASE new_db;\c new_db;在数据库中创建一个新的 SQL 表。您为表创建的列必须与源数据中的列匹配。在此示例中,表存储天气状况数据,包含时间戳、位置和温度列。
CREATE TABLE conditions (time TIMESTAMPTZ NOT NULL,location text NOT NULL,temperature DOUBLE PRECISION NULL);加载
timescaledb
PostgreSQL 扩展CREATE EXTENSION timescaledb;\dx将 SQL 表转换为超表
SELECT create_hypertable('conditions', by_range('time'));注意
by_range
维度构建器是 TimescaleDB 2.13 的新增功能。
成功设置新数据库后,您可以使用以下方法之一摄取数据。
如果您有一个存储在 .csv
文件中的数据集,您可以将其导入到空的超表中。在导入数据之前,您需要先创建新表。
重要提示
在开始之前,请确保您已准备好新数据库。
使用
timescaledb-parallel-copy
工具将数据插入到新的超表中。您应该已经安装了该工具,但如果需要,可以从我们的 GitHub 仓库手动安装。在此示例中,我们使用四个工作线程插入数据。
timescaledb-parallel-copy \--connection '<service_url>' \--table conditions \--file ~/Downloads/example.csv \--workers 4 \--copy-options "CSV" \--skip-header我们建议您将工作线程数量设置低于客户端机器或服务器上的可用 CPU 核心数量,以防止工作线程争夺资源。这有助于加快数据摄取速度。
可选: 如果您不想使用
timescaledb-parallel-copy
工具,或者数据集非常小,您可以使用 PostgreSQL 的COPY
命令。psql '<service_url>/new_db?sslmode=require' -c "\copy conditions FROM <example.csv> WITH (FORMAT CSV, HEADER)"
您可以使用 JDBC、Python 或 Node.js 等客户端驱动程序将数据直接插入到新数据库中。
有关使用 ODBC 驱动程序的说明,请参阅 PostgreSQL 指南。
有关使用 Python 和 Node.js 等各种语言的说明,请参阅代码快速入门。
如果您的数据存储在消息队列中,您可以将其导入到 Timescale 数据库中。本节提供使用 Kafka Connect PostgreSQL 连接器的说明。
此连接器将 PostgreSQL 更改事件从 Kafka Connect 部署到运行时服务。它监视 Timescale 服务器中的一个或多个模式,并将所有更改事件写入 Kafka 主题,然后可以由一个或多个客户端独立消费。Kafka Connect 可以分布式以提供容错能力,确保连接器正在运行并持续跟上数据库中的更改。
您也可以将 PostgreSQL 连接器作为库使用,而无需 Kafka 或 Kafka Connect。这允许应用程序和服务直接连接到 Timescale 并获取有序的更改事件。在这种环境下,应用程序必须记录连接器的进度,以便在重新启动时,连接器可以从上次中断的地方继续。这种方法对于不太关键的用例可能很有用。但是,对于生产用例,我们建议您将连接器与 Kafka 和 Kafka Connect 一起使用。
有关使用 Kafka 连接器的说明,请参阅这些说明。
关键词