Pular para o conteúdo principal
Procore

Exportar para o Snowflake usando Python

Visão geral

A ferramenta Procore Analytics Cloud Connect Access é uma interface de linha de comando (CLI) que ajuda você a configurar e gerenciar transferências de dados do Procore para o Snowflake.

Consiste em dois componentes principais: 

  • user_exp.py: Utilitário configuração configuração
  • ds_to_snowflake.py: Script de sincronização de dados

Pré-requisitos

  • Python está instalado no seu sistema 
  • Acesso ao compartilhamento Delta do Procore
  • Conta Flocos de neve credenciais 
  • Instale as dependências necessárias usando:
    • pip install -r requirements.txt 

Passos

Configuração Inicial

Execute o utilitário de configuração usando python user_exp.py.

Sincronização de dados

Após a configuração, você tem duas opções para executar a sincronização de dados: 

  • Execução Direta:
    • ds_to_snowflake.py Python
  • Execução Programada
    • Se configurado durante configuração, o trabalho será executado automaticamente de acordo com sua programação Cron.
    • Para verificar os registros de agendamento, o arquivo 'procore_scheduling.log' será criado assim que o agendamento for configurado.
    • Além disso, você pode verificar o agendamento executando o comando terminal:

Para Linux e MacOS:

  • Para editar/excluir - edite o cron de agendamento usando:

    ''Bash

    EDITOR=nano crontab -e

    ```

  • Depois de executar o comando acima, você verá algo semelhante a:

    2 * * * *
    /Usuários/your_user/floco de neve/venv/bin/python

     
    /Usuários/your_user/Flocos de neve/sql_server_python/connection_config.py
    2>&1 | durante a linha de leitura; fazer echo "$(date) - $line"; feito>>

     
    /Usuários/your_user/floco de neve/sql_server_python/procore_scheduling.log #procore-data-import 

     
  • Você também pode ajustar o cron do cronograma ou excluir toda a linha para interrompê-lo em execução por agendamento.

Para Windows:

  • Verifique se a tarefa do cronograma foi criada: 

    ```
        powershell 

        schtasks /query /tn "ProcoreDeltaShareScheduling" /fo LIST /v 

    ``` 

  • Para editar/excluir tarefa de agendamento, abra o Agendador de Tarefas.
  • Pressione Win + R, digite taskschd.msc, e pressione enter. 
  • Navegue até as tarefas agendadas. 
  • No painel esquerdo, expanda a Biblioteca do Agendador de Tarefas. 
  • Procure a pasta onde sua tarefa foi salva:
    Exemplo: Biblioteca do Agendador de Tarefas ou uma pasta personalizada.
  • Encontre sua tarefa.
  • Procure o nome da tarefa: ProcoreDeltaShareScheduling
  • Clique nele para visualizar os detalhes no painel inferior. 
  • Confira sua programação: 
    • Verifique a guia Gatilhos para ver quando a tarefa está definida para ser executada. 
    • Verifique a guia Histórico para confirmar as execuções recentes. 
  • Para excluir tarefa: 
    • Exclua a tarefa da GUI.

Configuração de compartilhamento delta

  • Criando o arquivo config.share 
  • Antes de executar o utilitário de configuração, você precisa criar um arquivo config.share com seu Delta Share credenciais. O arquivo deve estar no formato JSON: 

    "shareCredentialsVersion": 1, 
    "bearerToken": "xxxxxxxxxxxxx", 
    "ponto de extremidade": "https://nvirginia.nuvem. databricks.c... alojas/xxxxxx"

     

  • Campos obrigatórios: 
    • ShareCredentialsVersion: Número da versão (atualmente 1). 
    • BearerToken: Seu token de acesso Delta Share.
    • Ponto de extremidade: seu endpoint de compartilhamento Delta URL.
    • Esses detalhes podem ser obtidos na interface do usuário da Web do Procore.
  • Etapas para criar config.share: 
    • Crie um novo arquivo chamado config.share.
    • Copie o modelo JSON acima. 
    • Substitua os valores de espaço reservado pelo seu credenciais real. 
    • Salve o arquivo em um local seguro. 
    • Você precisará fornecer o caminho para esse arquivo durante a configuração. Ao configurar a fonte de dados, você será solicitado a fornecer:
      • Lista de tabelas (separadas por vírgula).
      • Deixe em branco para sincronizar todas as tabelas.
      • Exemplo: tabela1, tabela2, tabela3.
  • Caminho para o arquivo config.share .

Configuração do Flocos de Neve

Você precisará fornecer os seguintes detalhes do Flocos de Neve:

  • Autenticação (escolha uma): 
    • Autenticação do usuário 
      • Nome de usuário 
      • Senha (digitada com segurança) 
  • Autenticação de par de chaves
    • Nome de usuário 
    • Caminho do arquivo de chave privada
    • Senha do arquivo de chave privada 
  • Detalhes da conexão: 
    • Identificador da conta 
    • Nome do armazém 
    • Nome do banco de dados 
    • Nome do esquema 
    • Número de threads simultâneos 

Opções de agendamento

A ferramenta oferece a capacidade de agendar a sincronização automática de dados.

  • Configuração do trabalho Cron 
    • Escolher se deseja configurar um trabalho diário 
    • Se sim, forneça um cronograma cron 
    • Formato: * * * * * (minuto hora dia-do-mês mês, dia-da-semana)
    • Exemplo para diariamente às 2 da manhã: 0 2 * * * 
  • Execução Imediata 
    • Opção para executar o ds_to_snowflake.py imediatamente após a configuração  
  • Estrutura de arquivos

    Unset 
    ├── requirements.txt                    # Dependências 
    ├── user_exp.py                                # Utilitário de configuração
    ├── ds_to_snowflake.py                # Script de sincronização de dados
    ├── config.yaml                                  # Configuração gerada
    ├── config.share                               # Arquivo de configuração do Delta Share
    ├── procore_scheduling.log       # Log de execuções de agendamento 


    Exemplo de uso 
    • Etapa 1: Instalar dependências 
      $ pip instalar -r requirements.txt
    • Etapa 2: Executar o utilitário de configuração 
      $ python user_exp.py 
    • Acesso ao Procore Analytics Cloud Connect 
      • Essa CLI ajudará você a escolher seu armazenamento de origem e destino para acessar/gravar dados do Procore no Snowflake. 
      • Pressione Enter para continuar.
      • Insira a lista de tabelas (separadas por vírgula), deixe-a em branco para todas as tabelas: projetos,usuários,tarefas.
      • Digite o caminho para config.share: /caminho/para/config.share.
      • Digite o nome de usuário: snowflake_user.
      • Qual tipo de autenticação você deseja usar? (usuário/key_pair): Digite.
      • 1 para o usuário,
      • 2 para o par de chaves:
      • Digite a senha: ******** 
      • Digite a conta: my_account 
      • Entre no armazém: my_warehouse 
      • Digite o nome do banco de dados: procore_db
      • Digite o nome do esquema: procore_schema 
      • Digite o número de tópicos: 4 
      • Você quer configurar isso como um trabalho diário no cron? (Sim/Não): Sim 
      • Insira o cronograma no formato cron (por exemplo, * * * * * ): 0 2 * * * 
      • Quer executar o trabalho agora? (Sim/Não): Sim 
    • Etapa 3: Execução manual (se necessário)
      $ python ds_to_snowflake.py 
  • Reutilização de configuração
    A ferramenta salva sua configuração no arquivo config.yaml e oferece a reutilização de configurações armazenadas anteriormente: 
    • A configuração de origem pode ser reutilizada.
    • A configuração de destino (floco de neve) pode ser reutilizada. 
    • Você pode optar por atualizar qualquer configuração independentemente.

Práticas recomendadas 

  • Autenticação
    • Use a autenticação de par de chaves quando possível.
    • Gire regularmente credenciais. 
    • Use as permissões mínimas necessárias.
  • Desempenho 
    • Ajuste a contagem de threads com base nos recursos do sistema. 
    • Comece com um subconjunto menor de tabelas para teste.

Solucionando problemas 

  • Problemas e soluções comuns: 
    • Tipo de autenticação inválido 
      • Certifique-se de selecionar '1' (usuário) ou '2' (key_pair) quando solicitado.
  • Configuração do trabalho Cron  
    • Verifique se você tem as permissões de sistema adequadas.
    • Verifique os logs do sistema se o trabalho não for executado.
    • Verifique se o ds_to_snowflake.py tem permissões corretas. 
    • Verifique o configuração do trabalho cron verificando os logs do sistema:
      Consulte o arquivo "procore_scheduling.log ".
  • Arquivo de configuração
    • Localizado no mesmo diretório que o script,
    • Chamado config.yaml.
    • Faça backup antes de fazer qualquer alteração.
  • Suporte
    • Verifique a saída de log do script. 
    • Revise seu arquivo config.yaml
    • Entre em contato com o administrador do sistema para problemas relacionados à permissão.
    • Entre em contato com suporte do Procore para problemas de acesso ao Delta Share.

Nota: Lembre-se de sempre fazer backup de sua configuração antes de fazer alterações e testar novas configurações em um ambiente que não seja de produção primeiro.