Syntaxe vypadá tak, že se před běžný dotaz SELECT předřadí čas, ve kterém nás zajímá stav dat:
at time '2014-08-13 00:30:00' select * from moje;
Celé to funguje tak, že Vertica po operaci DELETE nemaže smazané řádky přímo, ale jenom je jako smazané označí. Operaci UPDATE Vertica implementuje jako smazání řádku a vložení nového (DELETE+INSERT).
Metadatům o smazaných řádcích Vertica říká delete vektory a jejich stav můžeme zjistit ze systémové tabulky delete_vectors:
select projection_name,sum(deleted_row_count) as deleted_row_count,floor(sum(used_bytes)/1024) as used_kb from delete_vectors group by projection_name order by projection_name;
projection_name | deleted_row_count | used_kb
-----------------+-------------------+---------
moje_super | 5 | 16
Seznam aktuálních epoch můžeme zjistit ze systémové tabulky epochs:
select * from epochs;
epoch_close_time | epoch_number
-------------------------------+--------------
2014-08-13 12:05:52.71345+02 | 16259
2014-08-13 14:49:47.034859+02 | 16260
2014-08-13 14:49:47.04223+02 | 16261
Pro zjištění údajů o aktuální epoše můžeme využít funkce:
select GET_AHM_TIME() as time, GET_AHM_EPOCH() as epoch;
time | epoch
------------------------------------------------+-------
Current AHM Time: 2014-08-13 14:49:47.04223+02 | 16261
AHM znamená Ancient History Mark a je to značka, označující nejstarší uchovávanou epochu -- starší epochy je možné smazat.
AHM je možné nastavit i ručně, funkcemi SET_AHM_TIME (nastaví AHM na daný čas),
SET_AHM_EPOCH (nastaví AHM na danou epochu), MAKE_AHM_NOW (nastaví AHM na aktuální čas).
Skutečné mazání dat (PURGE) z epoch starších než AHM řídí Vertica automaticky nebo je můžeme vyvolat ručně.
O automatiku se stará komponenta Tuple mover při provádění operace mergeout -- neplést s operací moveout, která přesouvá data z Write Optimized Storage (WOS) do Read Optimized Storage (ROS).
Ruční purge můžeme provést funkcemi PURGE_TABLE (provede purge dat v dané tabulce a všech jejích projekcích), PURGE_PROJECTION (provede purge dat v dané projekci) a PURGE (provede purge v celém databázovém schématu).
Žádné komentáře:
Okomentovat