Saltar al contenido principal
Procore

Exportar a Snowflake con Python

Resumen

La herramienta Procore Analytics Cloud Connect Access es una interfaz de línea de comandos (CLI) que ayuda a configurar y gestionar las transferencias de datos de Procore a Snowflake.

Consta de dos componentes principales: 

  • experiencia_usuario.py: Utilidad de configuración
  • ds_to_snowflake.py: Script de sincronización de datos

Requisitos

  • Python está instalado en su sistema 
  • Acceso a Procore Delta Share
  • credenciales de la cuenta de copo de nieve 
  • Instale las dependencias necesarias utilizando:
    • pip install -r requisitos.txt 

Pasos

Configuración inicial

Ejecute la utilidad de configuración utilizando python user_exp.py.

Sincronización de datos

Después de la configuración, tiene dos opciones para ejecutar la sincronización de datos: 

  • Ejecución directa:
    • pitón ds_to_snowflake.py
  • Ejecución planificada
    • Si se configura durante la configuración, el trabajo se ejecutará automáticamente de acuerdo con su planificación de Cron.
    • Para comprobar los registros de planificación, se creará el archivo `procore_scheduling.log` en cuanto se configure la planificación.
    • Además, puede verificar la planificación ejecutando el comando en el terminal:

Para Linux y macOS:

  • Para editar/eliminar: edite el cron de planificación usando:

    ```golpe

    EDITOR=nano crontab -e

    ```

  • Después de ejecutar el comando anterior, debería ver algo similar a:

    2 * * * *
    /Users/su_usuario/copo de nieve/venv/bin/python

     
    /Users/su_usuario/copo de nieve/sql_server_python/connection_config.py
    2>&1 | while lee la línea; do echo "$(fecha) - $línea"; hecho>>

     
    /Users/su_usuario/snowflake/sql_server_python/procore_scheduling.log # procore-data-import 

     
  • También puede ajustar el cron de la planificación o eliminar toda la línea para detener su ejecución según la planificación.

Para Windows:

  • Verifique que se haya creado la tarea de planificación: 

    ```
        PowerShell 

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

    ``` 

  • Editar/eliminar una tarea de planificación, abra el Planificador de tareas.
  • Pulse Win + R, escriba tareaschd.msc, y pulse Intro. 
  • Vaya a las tareas planificadas. 
  • En el panel izquierdo, expanda la Biblioteca del planificador de tareas. 
  • Busque la carpeta donde está guardada su tarea:
    Ejemplo: Biblioteca del Planificador de tareas o una carpeta personalizada.
  • Encuentre su tarea.
  • Busque el nombre de la tarea: ProcoreDeltaShareScheduling
  • Haga clic en él para ver los detalles en el panel inferior. 
  • Verifique su planificación: 
    • Consulte la pestaña Desencadenadores para ver cuándo está configurada la ejecución de la tarea. 
    • Consulte la pestaña Historial para confirmar las ejecuciones recientes. 
  • Para eliminar una tarea: 
    • Eliminar tarea de la GUI.

Configuración del recurso compartido delta

  • Creación del archivo config.share 
  • Antes de ejecutar la utilidad de configuración, debe crear un archivo config.share con sus credenciales de Delta Share. El archivo debe estar en formato JSON: 

    "shareCredentialsVersion": 1, 
    "bearerToken": "xxxxxxxxxxxxx", 
    "endpoint": "https://nvirginia. nube.databricks.c...astores/xxxxxx "

     

  • Campos obligatorios: 
    • ShareCredentialsVersion: número de versión (actualmente 1). 
    • BearerToken: su token de acceso a recursos compartidos de Delta.
    • Punto final: la URL de punto final de su recurso compartido delta.
    • Estos detalles se pueden obtener en la interfaz de usuario web de Procore.
  • Pasos para crear config.share: 
    • Cree un nuevo archivo denominado config.share.
    • Copie la plantilla JSON anterior. 
    • Reemplace los valores del marcador de posición por sus credenciales reales. 
    • Guarde el archivo en una ubicación segura. 
    • Deberá proporcionar la ruta de acceso a este archivo durante la configuración. Al configurar la fuente de datos, se le pedirá que proporcione:
      • Lista de tablas (separadas por comas).
      • Deje en blanco para sincronizar todas las tablas.
      • Ejemplo: tabla1, tabla2, tabla3.
  • Ruta de acceso al archivo config.share.

Configuración de copo de nieve

Deberá proporcionar los siguientes detalles de Snowflake:

  • Autenticación (elija una): 
    • Autenticación de usuario 
      • Nombre de usuario 
      • Contraseña (introducida de forma segura) 
  • Autenticación de par de claves
    • Nombre de usuario 
    • Ruta del archivo de clave privada
    • Contraseña del archivo de clave privada 
  • Detalles de conexión: 
    • Identificador de cuenta 
    • Nombre de almacén 
    • Nombre de la base de datos 
    • Nombre de esquema 
    • Número de subprocesos simultáneos 

Opciones de planificación

La herramienta ofrece la posibilidad de planificar la sincronización automática de datos.

  • Configuración de trabajo cron 
    • Elegir si configurar un proyecto diario 
    • En caso afirmativo, proporcione una planificación cron 
    • Formato: * * * * * (minuto hora día del mes mes día de la semana)
    • Ejemplo de diario a las 2:00: 0 2 * * * 
  • Ejecución inmediata 
    • Opción para ejecutar ds_to_snowflake.py inmediatamente después de la configuración  
  • Estructura de archivos

    desarmar 
    ├── requisitos.txt                    N.º de dependencias 
    ├── experiencia_usuario.py                                # Utilidad de configuración
    ├── ds_to_snowflake.py                # Script de sincronización de datos
    ├── config.yaml                                  # Configuración generada
    ├── compartir configuración                               # Archivo de configuración de recurso compartido delta
    ├── procore_scheduling.log       N.º registro de ejecuciones de planificación 


    Ejemplo de uso 
    • Paso 1: Instalar las dependencias 
      $ pip install -r requisitos.txt
    • Paso 2: Ejecutar la utilidad de configuración 
      $ python experiencia_usuario.py 
    • Acceso a Procore Analytics Cloud Connect 
      • Esta CLI lo ayudará a elegir la tienda de origen y de destino para acceder a los datos de Procore o escribirlos en Snowflake. 
      • Pulse Intro para continuar.
      • Introduzca la lista de tablas (separadas por comas). Déjelo en blanco para todas las tablas: proyectos, usuarios, tareas.
      • Introduzca la ruta a config.share: /ruta/a/config.share.
      • Introduzca el nombre de usuario: snowflake_user.
      • ¿Qué tipo de autenticación desea utilizar? (usuario/par de llaves): Intro.
      • 1 para el usuario,
      • 2 por par de claves:
      • Introduzca la contraseña: ******** 
      • Introduzca la cuenta: mi_cuenta 
      • Introduzca el almacén: mi_almacén 
      • Introduzca el nombre de la base de datos: procore_db
      • Introduzca el nombre del esquema: procore_schema 
      • Introduzca el número de subprocesos: 4 
      • ¿Desea configurar esto como un trabajo diario en cron? (Sí/No): Sí 
      • Introduzca la planificación en formato cron (p. ej., * * * * * ): 0 2 * * * 
      • ¿Desea ejecutar el trabajo ahora? (Sí/No): Sí 
    • Paso 3: Ejecución manual (si es necesario)
      $ python ds_to_snowflake.py 
  • Reutilización de configuración
    La herramienta guarda su configuración en el archivo config.yaml y ofrece reutilizar la configuración almacenada anteriormente: 
    • La configuración de origen se puede reutilizar.
    • La configuración de destino (copo de nieve) se puede reutilizar. 
    • Puede optar por actualizar cualquiera de las configuraciones de forma independiente.

Mejores prácticas 

  • Autenticación
    • Utilice la autenticación de par de claves cuando sea posible.
    • Rote regularmente las credenciales. 
    • Utilice los permisos mínimos necesarios.
  • Rendimiento 
    • Ajuste el número de subprocesos según las capacidades de su sistema. 
    • Comience con un subconjunto más pequeño de tablas para realizar pruebas.

Resolución de problemas 

  • Problemas comunes y soluciones: 
    • Tipo de autenticación no válido 
      • Asegúrese de seleccionar "1" (usuario) o "2" (par de claves) cuando se le solicite.
  • Configuración de trabajo cron  
    • Verifique que tiene los permisos del sistema adecuados.
    • Consulte los registros del sistema si el trabajo no se ejecuta.
    • Asegúrese de que ds_to_snowflake.py tenga los permisos correctos. 
    • Verifique la configuración del trabajo cron consultando los registros del sistema:
      Consulte el archivo `procore_scheduling.log` .
  • Archivo de configuración
    • Ubicado en el mismo directorio que el script,
    • Llamado config.yaml.
    • Haga una copia de seguridad antes de realizar cambios.
  • Soporte
    • Verifique el resultado del registro del script. 
    • Revise su archivo config.yaml
    • Póngase en contacto con el administrador del sistema si tiene problemas relacionados con los permisos.
    • Póngase en contacto con el soporte técnico de Procore si tiene problemas de acceso a recursos compartidos delta.

Nota: Recuerde siempre hacer una copia de seguridad de su configuración antes de realizar cambios y probar nuevas configuraciones primero en un entorno que no sea de producción.