将键控旧数据回填到压缩的超表
Backfilling keyed old data to compressed hypertable
我有一个假设的 Hypertable candle
交易所及其交易对数据:
create_hypertable('candle 'timestamp', create_default_indexes=>FALSE);
candle
数据看起来有点像这样,基本上价格走势分解为 pair_id
(交易对)和 exchange_id
(交易发生的交易所):
Column | Type | Collation | Nullable | Default
--------------------+-----------------------------+-----------+----------+---------
timestamp | timestamp without time zone | | not null |
pair_id | integer | | not null |
exchange_id | integer | | not null |
open | double precision | | not null |
high | double precision | | not null |
low | double precision | | not null |
close | double precision | | not null |
buy_volume | double precision | | not null |
sell_volume | double precision | | not null |
然后将此 table 馈送到连续聚合,然后提供开盘价、高低价和收盘价的每日和每周汇总值。
我愿意compress this table。然而,问题是虽然我可以很好地压缩当前数据,但在未来的某个时候,我需要从发布时不在系统中的交易所导入数据。基本上会有很多插入到过去的 timestamp
值和新的 exchange_id
。即使大多数 candle
table 数据是 immutable 并且可以通过 timestamp
限制它来压缩,如果我对 [=] 执行批量过去数据加载15=]之前没见过,要违反这个规则了。
- 处理这种情况的最佳方法是什么?
- 我能否安全地将数据批量加载到压缩的 hypertables(我的假设是我不能)?
- 任何变通方法...例如,我是否应该为数据插入日期(而不是交易日期)创建一个新列
created_at
,我可以将其用作压缩触发器,而不是自然日期?
- 压缩条件是否可以只考虑过滤的
exchange_id
列,我可以压缩 exchange_id
我知道手动是安全的?
What is the best way to handle this situation?
我会考虑采用更小的块,这样压缩和解压缩操作会变得更快。
Can I bulk load data to compressed hypertables safely?
实施此能力的时间尺度是in progress。
Can the compression condition consider only filtered exchange_id columns and I could compress exchange_id I know to be safe by hand?
也许尝试 add_partition?
我有一个假设的 Hypertable candle
交易所及其交易对数据:
create_hypertable('candle 'timestamp', create_default_indexes=>FALSE);
candle
数据看起来有点像这样,基本上价格走势分解为 pair_id
(交易对)和 exchange_id
(交易发生的交易所):
Column | Type | Collation | Nullable | Default
--------------------+-----------------------------+-----------+----------+---------
timestamp | timestamp without time zone | | not null |
pair_id | integer | | not null |
exchange_id | integer | | not null |
open | double precision | | not null |
high | double precision | | not null |
low | double precision | | not null |
close | double precision | | not null |
buy_volume | double precision | | not null |
sell_volume | double precision | | not null |
然后将此 table 馈送到连续聚合,然后提供开盘价、高低价和收盘价的每日和每周汇总值。
我愿意compress this table。然而,问题是虽然我可以很好地压缩当前数据,但在未来的某个时候,我需要从发布时不在系统中的交易所导入数据。基本上会有很多插入到过去的 timestamp
值和新的 exchange_id
。即使大多数 candle
table 数据是 immutable 并且可以通过 timestamp
限制它来压缩,如果我对 [=] 执行批量过去数据加载15=]之前没见过,要违反这个规则了。
- 处理这种情况的最佳方法是什么?
- 我能否安全地将数据批量加载到压缩的 hypertables(我的假设是我不能)?
- 任何变通方法...例如,我是否应该为数据插入日期(而不是交易日期)创建一个新列
created_at
,我可以将其用作压缩触发器,而不是自然日期? - 压缩条件是否可以只考虑过滤的
exchange_id
列,我可以压缩exchange_id
我知道手动是安全的?
What is the best way to handle this situation?
我会考虑采用更小的块,这样压缩和解压缩操作会变得更快。
Can I bulk load data to compressed hypertables safely?
实施此能力的时间尺度是in progress。
Can the compression condition consider only filtered exchange_id columns and I could compress exchange_id I know to be safe by hand?
也许尝试 add_partition?