Timescale Cloud:性能、规模、企业级
自托管产品
MST
本教程使用一个包含过去五天比特币区块链数据的数据集,这些数据存储在一个名为 transactions
的超表中。
要遵循本页的步骤
创建一个目标 Timescale Cloud 服务,并启用时序和分析功能。
您需要您的连接详情。此过程也适用于自托管的 TimescaleDB。
时序数据表示系统、流程或行为随时间变化的方式。超表使 TimescaleDB 能够高效处理时序数据。超表是 PostgreSQL 表,可按时间自动对时序数据进行分区。每个超表由称为分块(chunks)的子表组成。每个分块都被分配一个时间范围,并且只包含该范围内的数据。当您运行查询时,TimescaleDB 会识别正确的分块并在其上运行查询,而不是遍历整个表。
Hypercore 是 Timescale 超表使用的混合行/列式存储引擎。传统数据库在快速插入(行式存储)和高效分析(列式存储)之间存在权衡。Hypercore 消除了这种权衡,允许实时分析而不会牺牲事务处理能力。
Hypercore 根据数据生命周期以最有效的方式动态存储数据
- 最新数据的行式存储:最新分块(可能还有更多)始终存储在行存储中,确保快速插入、更新和低延迟的单记录查询。此外,行式存储还用作列式存储的写入直通(writethrough),用于插入和更新。
- 用于分析性能的列式存储:分块会自动压缩到列式存储中,从而优化存储效率并加速分析查询。
与传统列式数据库不同,Hypercore 允许数据在任何阶段进行插入或修改,使其成为高写入事务性工作负载和实时分析的灵活解决方案——全部在一个数据库中完成。
由于 TimescaleDB 100% 兼容 PostgreSQL,因此您可以将所有标准的 PostgreSQL 表、索引、存储过程和其他对象与超表一起使用。这使得创建和使用超表与标准 PostgreSQL 类似。
连接到您的 Timescale Cloud 服务
在 Timescale Console
中打开 SQL 编辑器。控制台内的编辑器会显示查询速度。您也可以使用 psql 连接到您的服务。
使用 CREATE TABLE 为您的时序数据创建 超表。为了对列式存储中的数据进行高效查询,请记住使用最常用于过滤数据的列进行
segmentby
。CREATE TABLE transactions (time TIMESTAMPTZ NOT NULL,block_id INT,hash TEXT,size INT,weight INT,is_coinbase BOOLEAN,output_total BIGINT,output_total_usd DOUBLE PRECISION,fee BIGINT,fee_usd DOUBLE PRECISION,details JSONB) WITH (tsdb.hypertable,tsdb.partition_column='time',tsdb.segmentby='block_id',tsdb.orderby='time DESC');如果您自托管 TimescaleDB v2.19.3 及更低版本,请创建一个 PostgreSQL 关系表
,然后使用 create_hypertable 将其转换。之后,通过调用 ALTER TABLE 启用 hypercore。
在
hash
列上创建索引,以加快单个事务的查询速度CREATE INDEX hash_idx ON public.transactions USING HASH (hash);在
block_id
列上创建索引,以加快块级查询速度创建超表时,它会按时间列进行分区。TimescaleDB 会自动在时间列上创建索引。但是,您也经常会按其他列过滤时序数据。您可以使用索引来提高查询性能。
CREATE INDEX block_idx ON public.transactions (block_id);在
time
和hash
列上创建唯一索引,以确保您不会意外插入重复记录CREATE UNIQUE INDEX time_hash_idx ON public.transactions (time, hash);
该数据集包含约 150 万笔比特币交易,是五天内的交易数据。它包括每笔交易的信息,以及以 聪(satoshi)计价的价值。它还说明了交易是否为 挖矿交易(coinbase transaction)
,以及矿工挖矿获得的奖励。
要将数据导入您创建的表中,您需要下载数据集并将数据复制到您的数据库。
下载
bitcoin_sample.zip
文件。该文件包含一个.csv
文件,其中包含过去五天的比特币交易数据。下载在新终端窗口中,运行此命令解压
.csv
文件unzip bitcoin_sample.zip在终端中,导航到您解压比特币交易的文件夹,然后使用 psql 连接到您的服务。
在
psql
提示符下,使用COPY
命令将数据传输到您的 Timescale 实例。如果.csv
文件不在当前目录中,请在这些命令中指定文件路径\COPY transactions FROM 'tutorial_bitcoin_sample.csv' CSV HEADER;由于有超过一百万行数据,
COPY
过程可能需要几分钟,具体取决于您的互联网连接和本地客户端资源。
关键词
在此页上发现问题?报告问题 或 在 GitHub 上编辑此页面
。