Timescale Cloud:性能、规模、企业级
自托管产品
MST
本教程使用的数据集包含最常用加密资产的逐秒交易数据。您将在一个名为 assets_real_time
的超表中优化这些时序数据。您还将在一个名为 assets
的普通 PostgreSQL 表中创建单独的资产符号表。
数据集每晚更新,包含过去四周的数据,通常约有 800 万行数据。交易数据是从 180 多个加密货币交易所实时记录的。
要遵循本页的步骤
创建一个已启用时序和分析的目标 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 crypto_ticks ("time" TIMESTAMPTZ,symbol TEXT,price DOUBLE PRECISION,day_volume NUMERIC) WITH (tsdb.hypertable,tsdb.partition_column='time',tsdb.segmentby='symbol',tsdb.orderby='time DESC');如果您自托管 TimescaleDB v2.19.3 及更低版本,请先创建一个PostgreSQL 关系表
,然后使用 create_hypertable 将其转换。之后,您可以通过调用 ALTER TABLE 启用 Hypercore。
当您拥有增强时序数据的关系数据时,请将其存储在标准 PostgreSQL 关系表中。
在关系表中添加一个表以存储资产符号和名称
CREATE TABLE crypto_assets (symbol TEXT UNIQUE,"name" TEXT);
您现在在 Timescale Cloud 服务中有两个表。一个名为 crypto_ticks
的超表,以及一个名为 crypto_assets
的普通 PostgreSQL 表。
本教程使用来自 Twelve Data 的实时加密货币数据,也称为行情数据。要将数据导入您创建的表,您需要下载数据集,然后将数据上传到您的 Timescale Cloud 服务。
解压
到<本地文件夹>
。此测试数据集包含最常用加密资产的逐秒交易数据,以及一个包含资产符号和公司名称的普通表。
要直接从当前基于 PostgreSQL 的数据库导入高达 100GB 的数据,请使用原生的 PostgreSQL 工具停机迁移。要无缝导入 100GB-10TB+ 的数据,请使用 Timescale 提供的实时迁移工具。要从非 PostgreSQL 数据源添加数据,请参阅导入和摄取数据。
在终端中,导航到
<本地文件夹>
并连接到您的服务。psql -d "postgres://<username>:<password>@<host>:<port>/<database-name>"服务的连接信息可在您创建服务时下载的文件中找到。
在
psql
提示符下,使用COPY
命令将数据传输到您的 Timescale 实例。如果.csv
文件不在当前目录中,请在这些命令中指定文件路径。\COPY crypto_ticks FROM 'tutorial_sample_tick.csv' CSV HEADER;\COPY crypto_assets FROM 'tutorial_sample_assets.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
的格式为<主机>:<端口>
。TLS/SSL 模式
:选择require
。PostgreSQL 选项
:启用TimescaleDB
。其他所有字段保留默认设置。
点击
保存并测试
。Grafana 检查您的详细信息是否已正确设置。
关键词