Как написать код для временного путешествия с использованием определенного идентификатора транзакции - PullRequest
0 голосов
/ 28 октября 2019

Я хотел бы использовать функцию timetravel для снежинки и восстановить исходную таблицу.

Я удалил и создал таблицу, используя следующую команду:

DROP TABLE "SOCIAL_LIVE"
CREATE  TABLE "SOCIAL_LIVE" (...)

Я хотел бывернитесь к исходной таблице перед удалением таблицы.

Я использовал следующий код (скрыл идентификатор транзакции для 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')

Select "BW"."PUBLIC"."SOCIAL_LIVE".* From "BW"."PUBLIC"."SOCIAL_LIVE";
select * from SOCIAL_LIVE before(statement => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');

Получено сообщение об ошибке:

Statement xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx cannot be used to specify time for time travel query.

Как мы можем вернуться к исходному столу и восстановить его на снежинке?

Ответы [ 3 ]

2 голосов
/ 28 октября 2019

В документации говорится:

После удаления таблицы создание таблицы с таким же именем создает новую версию таблицы. Удаленную версию предыдущей таблицы все еще можно восстановить, используя следующий метод:

  1. Переименуйте текущую версию таблицы в другое имя.

  2. Используйте команду UNDROP TABLE для восстановления предыдущей версии.

Если вам нужна дополнительная информация, эта страница полезна:

https://docs.snowflake.net/manuals/sql-reference/sql/drop-table.html#usage-notes

Для доступа к этим данным вам придется отменить таблицу. Путешествие во времени не поддерживается одним только именем. Итак, после того, как вы уронили и воссоздали таблицу, у новой таблицы появилось новое путешествие во времени.

0 голосов
/ 29 октября 2019

После того, как вы отбросите таблицу и создадите таблицу с тем же именем, вам нужно будет,

1. Сначала изменить имя новой таблицы на другое имя

ALTER TABLE t1 RENAME TO t1_Backup;

Затем используйте команду отмены для восстановления удаленной таблицы

таблицу отмены t1;

Использование отмены в Snowflake

0 голосов
/ 29 октября 2019

Оператор xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx не может использоваться для указания времени для запроса на перемещение во времени.

Обычно мы получаем ошибку выше, когда пытаемся отстать от времени создания объекта. Попробуйте с путешествием во времени со смещением.

Большое спасибо, Срига

...