- Usando SQL
- Usando a UI e seu próprio código (beta pública)
Funções Definidas pelo Usuário em SQL
CREATE FUNCTION a partir de uma expressão lambda.
Neste exemplo, vamos criar uma função definida pelo usuário executável simples, isBusinessHours.
A função verificará se um determinado timestamp está dentro do horário comercial e retornará true se estiver; caso contrário, false.
- Faça login no Cloud Console e abra o SQL Console
- Escreva a seguinte consulta SQL para criar a função
isBusinessHours:
- Execute o comando abaixo para testar sua UDF recém-criada:
- Você pode usar o comando
DROP FUNCTIONpara remover a UDF que acabou de criar:
- As configurações no nível da sessão (definidas pela instrução
SET) não são propagadas para o contexto de execução das UDFs - As configurações de perfil do usuário não são herdadas pelas UDFs
- As configurações no nível da consulta não se aplicam durante a execução das UDFs
Funções Definidas pelo Usuário criadas via UI
isBusinessHours, que verifica se um determinado timestamp está dentro do horário comercial.
Anteriormente, nós a criamos usando SQL, mas desta vez vamos criá-la em Python e configurá-la pela UI.
Crie o arquivo Python
Crie localmente um novo arquivomain.py:requirements.txt com a lista dessas dependências. Por exemplo:O ClickHouse Cloud espera encontrar
main.py no arquivo zip que você fará upload pela UI na próxima etapa.
Se o arquivo tiver outro nome, ocorrerá um erro.Empacote as dependências e os arquivos locais
Para incluir pacotes de dependência e quaisquer arquivos locais adicionais (como arquivos wheel, arquivos de configuração ou arquivos de dados), coloque-os no mesmo diretório quemain.py e requirements.txt. Ao criar o arquivo ZIP, inclua todos os arquivos:os.path.dirname(os.path.abspath(__file__)). Isso retorna o caminho absoluto para o diretório em que o main.py está localizado dentro do arquivo ZIP, permitindo acessar outros arquivos incluídos no pacote:- Acessar arquivos de configuração incluídos na sua UDF
- Carregar pacotes wheel para dependências personalizadas
- Referenciar scripts adicionais ou arquivos de dados
Criar uma UDF pela UI
- Na página inicial do Cloud Console, clique no nome da sua organização no menu no canto inferior esquerdo.
- Selecione Funções Definidas pelo Usuário no menu.
- Na página de funções definidas pelo usuário, clique em Set up a UDF. Um painel de configuração é aberto no lado direito da tela.
- Digite um nome para a função. Para este exemplo, use
isBusinessHours. - Selecione um tipo de função: Executable pool ou Executable:
- Executable pool: Um pool de processos persistentes é mantido, e um processo é obtido desse pool para leituras.
- Executable: O script é executado em cada consulta.
- Para este exemplo, use as configurações padrão. Para ver a lista completa dos parâmetros de configuração, consulte Funções definidas pelo usuário executáveis.
- Clique em Browse File para fazer upload do arquivo
.zipcriado no início deste tutorial. - Adicione um novo argumento. Para este exemplo, adicione o argumento
timestampcom o tipoDateTime. - Selecione um tipo de retorno. Para este exemplo, selecione
Bool. - Clique em Create UDF. Uma caixa de diálogo exibe o status atual da compilação.
- Se houver algum problema, o status muda para error.
- Caso contrário, o status avança de building para provisioning. Seu serviço precisa estar ativo para concluir o provisioning. Se o serviço estiver ocioso, clique em Wake Up Service no painel UDF details, ao lado do nome do serviço.
- Quando a implantação for concluída, o status muda para deployed.
Teste sua UDF
- volte à página inicial do SQL Console clicando em Settings - voltar para a visão do seu serviço no canto superior esquerdo da página
- clique em SQL Console no menu à esquerda
- escreva a seguinte consulta:
Criar uma nova versão
- Na página inicial do Cloud Console, clique no nome da sua organização no menu no canto inferior esquerdo.
- Selecione Funções Definidas pelo Usuário no menu.
- Clique nos três pontos em Ações da UDF
isBusinessHourse, em seguida, em Criar nova versão - Faça upload de um arquivo zip com o código modificado ou altere as configurações e clique em Criar nova versão