Timescale Cloud:性能、规模、企业级
自托管产品
MST
本教程使用包含过去五天比特币区块链数据的数据集,存储在名为 transactions
的超表中。
要按照本页的步骤操作
创建一个启用了时序和分析的目标 Timescale Cloud 服务。
您需要您的连接详情。此过程也适用于自托管 TimescaleDB。
时序数据表示系统、进程或行为随时间变化的方式。超表使 TimescaleDB 能够高效地处理时序数据。超表是 PostgreSQL 表,可自动按时间对时序数据进行分区。每个超表由称为分块的子表组成。每个分块分配一个时间范围,且仅包含该时间范围内的数据。当您运行查询时,TimescaleDB 会识别正确的分块并在其上运行查询,而不是遍历整个表。
Hypercore 是 Timescale 混合行-列式存储引擎,由超表使用。传统数据库需要在快速插入(基于行的存储)和高效分析(列式存储)之间进行权衡。Hypercore 消除了这种权衡,允许实时分析而不牺牲事务处理能力。
Hypercore 动态地以其生命周期内最有效的格式存储数据
- 用于近期数据的行式存储:最新的分块(可能更多)总是存储在行存储中,确保快速插入、更新和低延迟的单记录查询。此外,行式存储还用作列式存储的直写(writethrough)操作,用于插入和更新。
- 用于分析性能的列式存储:分块会自动压缩到列式存储中,从而优化存储效率并加速分析查询。
与传统列式数据库不同,Hypercore 允许在任何阶段插入或修改数据,使其成为高摄入事务工作负载和实时分析的灵活解决方案——都在一个数据库中实现。
由于 TimescaleDB 100% 兼容 PostgreSQL,您可以将所有标准 PostgreSQL 表、索引、存储过程和其他对象与超表一起使用。这使得创建和使用超表与标准 PostgreSQL 类似。
连接到您的 Timescale Cloud 服务
在Timescale 控制台
中,打开一个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(币基)
交易,以及矿工因挖矿而获得的奖励。
要将数据摄入您创建的表中,您需要下载数据集并将数据复制到您的数据库。
下载
bitcoin_sample.zip
文件。该文件包含一个.csv
文件,其中包含过去五天的比特币交易数据。下载在新终端窗口中,运行此命令解压
.csv
文件unzip bitcoin_sample.zip在终端中,导航到解压比特币交易数据的文件夹,然后使用psql连接到您的服务。
在
psql
提示符下,使用COPY
命令将数据传输到您的 Timescale 实例。如果.csv
文件不在当前目录中,请在这些命令中指定文件路径\COPY transactions FROM 'tutorial_bitcoin_sample.csv' CSV HEADER;由于数据超过一百万行,
COPY
过程可能需要几分钟,具体取决于您的互联网连接和本地客户端资源。
要可视化查询结果,请启用 Grafana 以读取服务中的数据
登录 Grafana
在您的浏览器中,登录以下任一选项
- 自托管 Grafana:访问
http://localhost:3000/
。默认凭据为admin
,admin
。 - Grafana Cloud:使用您创建账户时设置的 URL 和凭据。
- 自托管 Grafana:访问
添加您的服务作为数据源
打开
Connections
>Data sources
,然后点击Add new data source
。从列表中选择
PostgreSQL
。配置连接
主机 URL
、数据库名
、用户名
和密码
使用您的连接详情进行配置。
主机 URL
的格式为<host>:<port>
。TLS/SSL 模式
:选择require
。PostgreSQL 选项
:启用TimescaleDB
。其他所有字段保留默认设置。
点击
保存并测试
。Grafana 会检查您的详情是否设置正确。
关键词