ΠΡΠΎΠ΅ΠΊΡΡΡ TimescaleDB Π΅ Π²Π½Π΅Π΄ΡΠ΅Π½ ΠΊΠ°ΡΠΎ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΊΡΠΌ PostgreSQL ΠΈ
Π‘ΡΠ΅Π΄ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² TimescaleDB 1.7:
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΡΡΡ Π‘Π£ΠΠ
PostgreSQL 12 . ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π·Π° PostgreSQL 9.6.x ΠΈ 10.x Π΅ ΠΎΡΡ Π²ΡΡΠ»Π΅Π½Π° (Timescale 2.0 ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ°ΠΌΠΎ PostgreSQL 11+). - ΠΡΠΎΠΌΠ΅Π½Π΅Π½ΠΎ Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ Ρ Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠΎ ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ (ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π°Π½Π΅ Π½Π° Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠΎ ΠΏΠΎΡΡΡΠΏΠ²Π°ΡΠΈ Π΄Π°Π½Π½ΠΈ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅). Π’Π°ΠΊΠΈΠ²Π° Π·Π°ΡΠ²ΠΊΠΈ Π²Π΅ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Ρ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΈΠ·Π³Π»Π΅Π΄ΠΈ Ρ Π½ΠΎΠ²ΠΎΠΏΡΠΈΡΡΠΈΠ³Π½Π°Π»ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ ΡΠ° ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ (ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° Π°Π³ΡΠ΅Π³ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΏΠΎΠΊΡΠΈΠ²Π°ΡΠ΅ ΡΠ°ΠΌΠΎ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ Π²Π΅ΡΠ΅ ΡΠ° ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ). ΠΠΎΠ²ΠΎΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° Π·Π° Π½ΠΎΠ²ΠΎΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈ Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠΈΠΈ; Π·Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈ ΠΈΠ·Π³Π»Π΅Π΄ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΡΡ βtimescaledb.materialized_only=falseβ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ Π·Π°Π΄Π°Π΄Π΅Π½ ΡΡΠ΅Π· βALTER VIEWβ.
- ΠΡΠΊΠΎΠΈ ΡΡΡΠ²ΡΡΡΠ΅Π½ΡΡΠ²Π°Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΆΠΈΠ·Π½Π΅Π½ΠΈΡ ΡΠΈΠΊΡΠ» Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ Π±ΡΡ Π° ΠΏΡΠ΅Ρ Π²ΡΡΠ»Π΅Π½ΠΈ ΠΊΡΠΌ Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° ΠΠ±ΡΠ½ΠΎΡΡΡΠ° ΠΎΡ ΡΡΡΠ³ΠΎΠ²ΡΠΊΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΏΡΠ΅Π³ΡΡΠΏΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π·Π° ΠΈΠ·Π²Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΎΡΡΠ°ΡΠ΅Π»ΠΈ Π΄Π°Π½Π½ΠΈ (ΠΊΠΎΠ΅ΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΡΠ΅ ΡΠ°ΠΌΠΎ ΡΠ΅ΠΊΡΡΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π΄Π° ΠΈΠ·ΡΡΠΈΠ²Π°ΡΠ΅, ΠΎΠ±ΠΎΠ±ΡΠ°Π²Π°ΡΠ΅ ΠΈΠ»ΠΈ Π°ΡΡ ΠΈΠ²ΠΈΡΠ°ΡΠ΅ ΠΎΡΡΠ°ΡΠ΅Π»ΠΈ Π·Π°ΠΏΠΈΡΠΈ).
ΠΠ΅ΠΊΠ° ΡΠΈ ΠΏΡΠΈΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΠ΅ Π‘Π£ΠΠ TimescaleDB Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΏΡΠ»Π½ΠΎΡΠ΅Π½Π½ΠΈ SQL Π·Π°ΡΠ²ΠΊΠΈ Π·Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° Π½Π°ΡΡΡΠΏΠ°Π½ΠΈ Π΄Π°Π½Π½ΠΈ, ΡΡΡΠ΅ΡΠ°Π²Π°ΠΉΠΊΠΈ Π»Π΅ΠΊΠΎΡΠ°ΡΠ° Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅, ΠΏΡΠΈΡΡΡΠ° Π½Π° ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ Π‘Π£ΠΠ, Ρ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅, ΠΏΡΠΈΡΡΡΠΈ Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈΡΠ΅ NoSQL ΡΠΈΡΡΠ΅ΠΌΠΈ. Π‘ΡΡΡΠΊΡΡΡΠ°ΡΠ° Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π°, Π·Π° Π΄Π° ΠΎΡΠΈΠ³ΡΡΠΈ Π²ΠΈΡΠΎΠΊΠ° ΡΠΊΠΎΡΠΎΡΡ Π½Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ. Π’ΠΎΠΉ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π½Π°Π±ΠΎΡΠΈ ΠΎΡ Π΄Π°Π½Π½ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΡΠ΅ΡΡΠΎΠ°ΠΊΡΠΈΠ²Π½ΠΎ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠ΅Π·ΠΎΠ²Π΅ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ.
ΠΠ»ΡΡΠΎΠ²Π° Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° Π½Π° TimescaleDB Π΅ Π½Π΅Π³ΠΎΠ²Π°ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΌΠ°ΡΠΈΠ²Π° ΠΎΡ Π΄Π°Π½Π½ΠΈ. ΠΡ ΠΎΠ΄ΡΡΠΈΡΡ ΠΏΠΎΡΠΎΠΊ ΠΎΡ Π΄Π°Π½Π½ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈ ΡΠ°Π±Π»ΠΈΡΠΈ. Π‘Π΅ΠΊΡΠΈΠΈΡΠ΅ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ (Π²ΡΡΠΊΠ° ΡΠ΅ΠΊΡΠΈΡ ΡΡΡ ΡΠ°Π½ΡΠ²Π° Π΄Π°Π½Π½ΠΈ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΏΠ΅ΡΠΈΠΎΠ΄ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅) ΠΈΠ»ΠΈ Π²ΡΠ² Π²ΡΡΠ·ΠΊΠ° Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ ΠΊΠ»ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΄Ρ.). ΠΠ° Π΄Π° ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°, ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡΠ΅ ΡΠ°Π±Π»ΠΈΡΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π΄ΠΈΡΠΊΠΎΠ²Π΅.
ΠΠ° Π·Π°ΡΠ²ΠΊΠΈ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π°ΡΠ° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°ΡΠΎ Π΅Π΄Π½Π° Π³ΠΎΠ»ΡΠΌΠ° ΡΠ°Π±Π»ΠΈΡΠ°, Π½Π°ΡΠ΅ΡΠ΅Π½Π° Ρ ΠΈΠΏΠ΅ΡΡΠ°Π±Π»ΠΈΡΠ°. Π₯ΠΈΠΏΠ΅ΡΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Π΅ Π²ΠΈΡΡΡΠ°Π»Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΠ°Π±Π»ΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π°ΡΡΡΠΏΠ²Π°Ρ Π²Ρ ΠΎΠ΄ΡΡΠΈ Π΄Π°Π½Π½ΠΈ. Π₯ΠΈΠΏΠ΅ΡΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π΅ ΡΠ°ΠΌΠΎ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ ΠΈ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, Π½ΠΎ ΠΈ Π·Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΊΠ°ΡΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈ ΠΈ ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° (βALTER TABLEβ), ΡΠΊΡΠΈΠ²Π°ΠΉΠΊΠΈ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΈΡΠ°Π½Π°ΡΠ° ΡΡΡΡΠΊΡΡΡΠ° Π½Π° Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. Π‘ Ρ ΠΈΠΏΠ΅ΡΡΠ°Π±Π»ΠΈΡΠ° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠΎΠ΄Π·Π°ΡΠ²ΠΊΠΈ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π° ΡΠ»ΠΈΠ²Π°Π½Π΅ (JOIN) Ρ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ ΡΠ°Π±Π»ΠΈΡΠΈ ΠΈ ΠΏΡΠΎΠ·ΠΎΡΠ΅ΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru