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
- Sincronización de datos
- Configuración del origen del recurso compartido delta
- Configuración de destino de copo de nieve
- Opciones de planificación
- Prácticas recomendadas
- Resolución de problemas
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 usuario
- 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:
- 1
- 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
- Paso 1: Instalar las dependencias
- 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.
- Tipo de autenticación no válido
- 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.