Este guia mostra como migrar dados do Snowflake para o ClickHouse.A migração de dados entre Snowflake e ClickHouse requer o uso de um armazenamento de objetos, como o S3, como armazenamento intermediário para a transferência. O processo de migração também depende do uso dos comandos
COPY INTO do Snowflake e INSERT INTO SELECT
do ClickHouse.
Exportar dados do Snowflake
A exportação de dados do Snowflake exige o uso de um stage externo, como mostrado no diagrama acima.Digamos que queremos exportar uma tabela do Snowflake com o seguinte schema:us-east-1, a cópia dos dados para o bucket do S3 levará cerca de 30 minutos.Importar para o ClickHouse
Depois que os dados estiverem em um armazenamento de objetos intermediário, funções do ClickHouse, como a s3 table function, podem ser usadas para inserir os dados em uma tabela, como mostrado abaixo.Este exemplo usa a s3 table function para AWS S3, mas a gcs table function pode ser usada para Google Cloud Storage, e a azureBlobStorage table function pode ser usada para Azure Blob Storage.Supondo o seguinte schema da tabela de destino:INSERT INTO SELECT para inserir os dados do S3 em uma tabela do ClickHouse:Observação sobre estruturas de colunas aninhadasAs colunas
VARIANT e OBJECT no schema original da tabela do Snowflake serão geradas como strings JSON por padrão, o que nos obriga a convertê-las ao inseri-las no ClickHouse.Estruturas aninhadas como some_file são convertidas em strings JSON durante a cópia no Snowflake. Para importar esses dados, precisamos transformar essas estruturas em Tuples no momento da inserção no ClickHouse, usando a função JSONExtract, como mostrado acima.Testar a exportação de dados bem-sucedida
Para verificar se os dados foram inseridos corretamente, basta executar uma consultaSELECT na nova tabela: