Timescale Cloud:性能、规模、企业级

自托管产品

MST

有几种不同的方法可以将数据摄取到 TimescaleDB 托管服务中。本节包含以下说明:

在开始之前,请确保您已创建了 TimescaleDB 托管服务,并且可以使用 psql 连接到它。

  1. 使用 psql 连接到您的服务。

    psql -h <HOSTNAME> -p <PORT> -U <USERNAME> -W -d <DATABASE_NAME>

    您可以从 MST 控制面板的服务概览中检索服务 URL、端口和登录凭据。

  2. 为您的数据创建一个新数据库。在此示例中,新数据库名为 new_db

    CREATE DATABASE new_db;
    \c new_db;
  3. 在数据库中创建一个新的 SQL 表。您为表创建的列必须与源数据中的列匹配。在此示例中,表存储天气状况数据,包含时间戳、位置和温度列。

    CREATE TABLE conditions (
    time TIMESTAMPTZ NOT NULL,
    location text NOT NULL,
    temperature DOUBLE PRECISION NULL
    );
  4. 加载 timescaledb PostgreSQL 扩展

    CREATE EXTENSION timescaledb;
    \dx
  5. 将 SQL 表转换为超表

    SELECT create_hypertable('conditions', by_range('time'));
    注意

    by_range 维度构建器是 TimescaleDB 2.13 的新增功能。

成功设置新数据库后,您可以使用以下方法之一摄取数据。

如果您有一个存储在 .csv 文件中的数据集,您可以将其导入到空的超表中。在导入数据之前,您需要先创建新表。

重要提示

在开始之前,请确保您已准备好新数据库

  1. 使用 timescaledb-parallel-copy 工具将数据插入到新的超表中。您应该已经安装了该工具,但如果需要,可以从我们的 GitHub 仓库手动安装。在此示例中,我们使用四个工作线程插入数据。

    timescaledb-parallel-copy \
    --connection '<service_url>' \
    --table conditions \
    --file ~/Downloads/example.csv \
    --workers 4 \
    --copy-options "CSV" \
    --skip-header

    我们建议您将工作线程数量设置低于客户端机器或服务器上的可用 CPU 核心数量,以防止工作线程争夺资源。这有助于加快数据摄取速度。

  2. 可选: 如果您不想使用 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 连接器的说明,请参阅这些说明

关键词

在此页面上发现问题?报告问题 或 编辑此页面 在 GitHub 上。