Smartface, technologies and decay
@antonrevyako
Post #770
2.21K
Forwarded from Anton Revyako
Привет. Я с новостями :)
Я как-то рассказывал о проблеме с функцией GET_DDL в Snowflake.
Она имеет одну особенность, которая не позволяет использовать результат ее работы по назначению:
объекты сортируются по алфавиту.
Например:
Вернет
Этот DDL-скрипт не может быть выполнен из-за неправильного порядка объектов.
Мы сделали инструмент, который пересортирует объекты с учетом их связанности.
Применимо для всех объектов Snowflake (включая VIEW), понимает CREATE и ALTER, учитывает FOREIGN KEYS, CLONE, SELECT AS и другие виды зависимостей.
Умеет определять циклические зависимости.
Можно использовать онлайн без регистрации
https://parsers.dev/tools/ddl/reordering
или при помощи API:
https://docs.parsers.dev/#snowflake-get_ddl-function-result-reorder
Если у вас будут какие-то задачи, которые вы хотели бы автоматизировать, пишите тут. Попробуем решить :)
Я как-то рассказывал о проблеме с функцией GET_DDL в Snowflake.
Она имеет одну особенность, которая не позволяет использовать результат ее работы по назначению:
объекты сортируются по алфавиту.
Например:
CREATE TABLE B (ID INT PRIMARY KEY);
CREATE TABLE A (ID INT REFERENCES B(ID));
SELECT GET_DDL('DATABASE', 'TEST', TRUE);
Вернет
create or replace TABLE TEST.PUBLIC.A (
ID NUMBER(38,0),
foreign key (ID) references TEST.PUBLIC.B(ID)
);
create or replace TABLE TEST.PUBLIC.B (
ID NUMBER(38,0) NOT NULL,
primary key (ID)
);
Этот DDL-скрипт не может быть выполнен из-за неправильного порядка объектов.
Мы сделали инструмент, который пересортирует объекты с учетом их связанности.
Применимо для всех объектов Snowflake (включая VIEW), понимает CREATE и ALTER, учитывает FOREIGN KEYS, CLONE, SELECT AS и другие виды зависимостей.
Умеет определять циклические зависимости.
Можно использовать онлайн без регистрации
https://parsers.dev/tools/ddl/reordering
или при помощи API:
https://docs.parsers.dev/#snowflake-get_ddl-function-result-reorder
Если у вас будут какие-то задачи, которые вы хотели бы автоматизировать, пишите тут. Попробуем решить :)


