ITPub博客

首页 > 数据库 > > TimescaleDB入门-创建超表(翻译整理)

TimescaleDB入门-创建超表(翻译整理)

作者:u_9ff4c058a0e0 时间:2022-03-25 15:22:48 0 删除 编辑

当您启动您的第一个 TimescaleDB 实例并访问您的数据库时,您可以创建您的第一个超表。Hypertables 是 TimescaleDB 的核心,它使 TimescaleDB 能够如此有效地处理时间序列数据。

块和超表

块和超表使时间序列数据的存储和查询速度达到 PB 级的惊人速度。TimescaleDB 根据时间和空间自动将时间序列数据划分为块或子表。例如,块可以基于散列键、设备 ID、位置或其他一些不同的键。您可以配置块大小,以便最近的块适合内存以加快查询速度。

超表是保存时间序列数据的块之上的抽象层。Hypertables 允许您从所有块中查询和访问数据,就好像它们在单个表中一样。这是因为对超表发出的命令适用于属于该超表的所有块。

Hypertables 和块为浅层和宽查询提供卓越的性能,例如实时监控中使用的查询。它们也适用于深度和狭窄的查询,例如用于时间序列分析的查询。

创建您的第一个超表

------------------------------------------ Hypertable to store weather metrics------------------------------------------ Step 1: Define regular tableCREATE TABLE IF NOT EXISTS weather_metrics (
time TIMESTAMP WITHOUT TIME ZONE NOT NULL, timezone_shift int NULL, city_name text NULL, temp_c double PRECISION NULL, feels_like_c double PRECISION NULL, temp_min_c double PRECISION NULL, temp_max_c double PRECISION NULL, pressure_hpa double PRECISION NULL, humidity_percent double PRECISION NULL, wind_speed_ms double PRECISION NULL, wind_deg int NULL, rain_1h_mm double PRECISION NULL, rain_3h_mm double PRECISION NULL, snow_1h_mm double PRECISION NULL, snow_3h_mm double PRECISION NULL, clouds_percent int NULL, weather_type_id int NULL);
-- Step 2: Turn into hypertableSELECT create_hypertable('weather_metrics','time');

创建超表是一个两步过程。首先使用一条CREATE TABLE 语句创建一个常规的关系表。然后,使用SELECT 带有函数的语句create_hypertable将表转换为超表。该SELECT语句需要要转换的表的名称,以及该表中时间列的名称。

超表如何帮助处理时间序列数据

Hypertables 加快了摄取率:因为数据只插入到当前块中,其他块中的数据保持不变。如果使用单个表,每次将数据摄取到表中,它就会变得更大、更臃肿。

Hypertables 加快查询速度:因为通过时间或空间的自动索引,只查询特定的块。

超表的价值在于数据在磁盘上的分区方式。数据的时间依赖性会自动增加索引值,以允许更集中地使用内存和查询计划资源。在 PostgreSQL(和其他关系数据库管理系统)中,您可以在一个或多个值上构建索引,但仍必须检索数据。在大多数情况下,从物理层(内存或磁盘)的某些部分进行检索,这并不总是导致内存和磁盘资源的有效使用。通过按时间自动和透明地分区,超级表提高了资源使用率。查询和数据存储变得更加高效。

来源 https://mp.weixin.qq.com/s/WVZK8HGHh1UH37mNouA2Tg

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69999831/viewspace-3155494/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2022-02-11

  • 博文量
    1828
  • 访问量
    20686