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

自托管产品

MST

Apache Parquet是 Apache Hadoop 生态系统中的一种免费、开源的面向列的数据存储格式。它提供高效的数据压缩和编码方案,并增强了处理大量复杂数据的性能。

本页面向您展示如何将数据从 Parquet 文件导入到您的 Timescale Cloud 服务中。

最佳实践是使用与您的 Timescale Cloud 服务位于同一区域的 Ubuntu EC2 实例作为迁移机器。也就是说,您在上面运行命令以将数据从源数据库移动到目标 Timescale Cloud 服务的机器。

在迁移数据之前

  • 创建目标 Timescale Cloud 服务

    每个 Timescale Cloud 服务都有一个单一数据库,支持最流行的扩展。Timescale Cloud 服务不支持表空间,并且没有与服务关联的超级用户。最佳实践是创建至少具有 8 个 CPU 的 Timescale Cloud 服务,以获得更流畅的体验。更高规格的实例可以显著缩短整个迁移窗口。

  • 为确保在此过程中不运行维护,请调整维护窗口

  • 安装 DuckDB 在 Parquet 文件所在的源机器上。
  • 确保 Parquet 文件中的时间列使用 TIMESTAMP 数据类型。

为了更快的数据传输,最佳实践是您的目标服务和运行数据导入的系统位于同一区域。

从 Parquet 文件导入数据

  1. 设置您的服务连接字符串

    此变量包含目标 Timescale Cloud 服务的连接信息。

    在源机器的终端中,设置以下内容:

    export TARGET=postgres://tsdbadmin:<PASSWORD>@<HOST>:<PORT>/tsdb?sslmode=require

    您可以在创建服务时下载的配置文件中找到 Timescale Cloud 服务的连接信息。

  2. 创建一个超表来保存您的数据

    1. 创建一个与 Parquet 文件中的数据兼容的新空表。

      例如,如果您的 Parquet 文件包含 tslocationtemperature 列,类型分别为 TIMESTAMPSTRINGDOUBLE

      psql $TARGET -c "CREATE TABLE <TABLE_NAME> ( \
      ts TIMESTAMPTZ NOT NULL, \
      location TEXT NOT NULL, \
      temperature DOUBLE PRECISION NULL \
      );"

      如果您更喜欢使用安全的 UI 而不是命令行,请使用Timescale Console 中的数据模式

    2. 将空表转换为超表

      在以下命令中,将 <TABLE NAME> 替换为您刚刚创建的表的名称,并将 <COLUMN_NAME> 替换为 <TABLE NAME> 中的分区列。

      psql $TARGET -c "SELECT create_hypertable('<TABLE_NAME>', by_range('<COLUMN_NAME>'))"
  3. 设置 DuckDB 连接到您的服务

    1. 在源机器的终端中,启动一个新的 DuckDB 交互式会话,其中包含您的 Parquet 文件

      duckdb
    2. 在您的 DuckDB 会话中连接到您的服务

      ATTACH '<Paste the value of $TARGET here' AS db (type postgres);

      $TARGET 是您使用 psql 连接到服务时使用的连接字符串。

  4. 将数据从 Parquet 导入到您的服务

    1. 在 DuckDB 中,将表数据上传到您的服务

      COPY db.<TABLE_NAME> FROM '<FILENAME>.parquet' (FORMAT parquet);

      其中

      • <TABLE_NAME>:您创建的用于导入数据的超表
      • <FILENAME>:要导入数据的 Parquet 文件
    2. 退出 DuckDB 会话

      EXIT;
  5. 验证数据是否正确导入到您的服务中

    在您的 psql 会话中,或使用Timescale Console 中的数据模式,查看 <TABLE_NAME> 中的数据

    SELECT * FROM <TABLE_NAME>;

就这样,您已将数据从 Parquet 文件导入到您的 Timescale Cloud 服务中。

关键词

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