Exportar a Snowflake usando Python
Descripción general
La herramienta Procore Analytics Nube Connect Access es una interfaz de línea de comandos (CLI) que lo ayuda a configurar y administrar las transferencias de datos de Procore a Snowflake.
Consta de dos componentes principales:
- user_exp.py: Utilidad de configuración
- ds_to_snowflake.py: Script de sincronización de datos
Requisitos previos
- Python está instalado en su sistema
- Acceso a Procore Delta Share
- Credenciales de la cuenta de Snowflake
- Instale las dependencias necesarias mediante:
- pip install -r requirements.txt
Pasos
- Configuración inicial
- Sincronización de datos
- Configuración de origen de recurso compartido delta
- Configuración de destino de copo de nieve
- Opciones de programación
- Mejores prácticas
- Solución de problemas
Configuración inicial
Ejecute la utilidad de configuración usando 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:
- Python ds_to_snowflake.py
- Ejecución programada
- Si se configura durante la configuración, el trabajo se ejecutará automáticamente de acuerdo con su programa Cron.
- Para verificar los registros de programación, el archivo 'procore_scheduling.log' se creará tan pronto como se configure la programación.
- Además, puede verificar la programación ejecutando el comando en la terminal:
Para Linux y MacOS:
- Para editar/eliminar - edite el cron de programación usando:
'''bash
EDITOR=nano crontab -e
``` - Después de ejecutar el comando anterior, debería ver algo similar a:
2 * * * *
/usuarios/your_user/copo de nieve/venv/bin/python
/usuarios/your_user/copo de nieve/sql_server_python/connection_config.py
2> y 1 | mientras se lee la línea; do echo "$(fecha) - $line"; ¡Listo>>
/usuarios/your_user/copo de nieve/sql_server_python/procore_scheduling.log # procore-data-import - También puede ajustar el cron de programación o eliminar toda la línea para que deje de ejecutarse según el programa.
Para Windows:
- Compruebe que se ha creado la tarea de programa:
```
PowerShell
schtasks /query /tn "ProcoreDeltaShareScheduling" /fo LIST /v
```
- Para editar/eliminar la tarea de programación, abra el Programador de tareas.
- Presione Win + R, escriba taskschd.msc, y presione ENTER.
- Navegue hasta las tareas programadas.
- En el panel izquierdo, expanda la Biblioteca del programador de tareas.
- Busque la carpeta donde está guardada su tarea:
Ejemplo: Biblioteca del programador 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.
- Verifica su horario:
- Compruebe la pestaña Desencadenadores para ver cuándo está configurada la tarea para ejecutarse.
- Compruebe la pestaña Historial para confirmar las ejecuciones recientes.
- Para eliminar la tarea:
- Eliminar tarea de la GUI.
Configuración de recursos compartidos 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": "[1]"
}
- Campos obligatorios:
- ShareCredentialsVersion: número de versión (actualmente 1).
- BearerToken: Su token de acceso a Delta Share.
- Punto de conexión: la URL del punto de conexión de Delta Share.
- Estos detalles se pueden obtener en la interfaz de usuario web de Procore.
- Pasos para crear config.share:
- Cree un nuevo archivo llamado config.share.
- Copie la plantilla JSON anterior.
- Reemplace los valores de marcador de posición por sus credenciales reales.
- Guarde el archivo en un lugar seguro.
- 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).
- Dejar 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 (ingresada 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 la conexión:
- Identificador de cuenta
- Nombre del almacén
- Nombre de la base de datos
- Nombre del esquema
- Número de subprocesos simultáneos
Opciones de programación
La herramienta ofrece la posibilidad de programar la sincronización automática de datos.
- Configuración de Cron Job
- Elegir si desea configurar un trabajo diario
- En caso afirmativo, proporcione un cron schedule
- Formato: * * * * * (minuto, hora, día del mes, mes, día de la semana)
- Ejemplo para todos los días a las 2 a.m.: 0 2 * * *
- Ejecución inmediata
- Opción para ejecutar el ds_to_snowflake.py inmediatamente después de la configuración
- Estructura de archivos
Unset
├── requirements.txt # Dependencias
├── user_exp.py # Utilidad de configuración
├── ds_to_snowflake.py # Script de sincronización de datos
├── config.yaml # Configuración generada
├── config.share # Archivo de configuración de Delta Share
├── procore_scheduling.log # Registro de ejecuciones de programación
Ejemplo de uso- Paso 1: Instalar dependencias
$ pip install -r requirements.txt - Paso 2: Ejecutar la utilidad de configuración
$ python user_exp.py - Acceso a Procore Analytics Nube Connect
- Esta CLI lo ayudará a elegir su almacén de origen y destino para acceder/escribir datos de Procore en Snowflake.
- Presione Enter para continuar.
- Ingrese a la lista de tablas (separadas por comas), déjela en blanco para todas las tablas: proyectos, usuarios, tareas.
- Ingrese la ruta a config.share: /ruta/a/config.share.
- Ingrese el nombre de usuario: snowflake_user.
- ¿Qué tipo de autenticación desea utilizar? (usuario/key_pair): Ingresar.
- 1 para el usuario,
- 2 para el par de claves:
- 1
- Ingrese la contraseña: ********
- Ingrese la cuenta: my_account
- Entrar en el almacén: my_warehouse
- Ingrese el nombre de la base de datos: procore_db
- Introduzca el nombre del esquema: procore_schema
- Introduzca el número de hilos: 4
- ¿Quieres configurar esto como un trabajo diario en cron? (Sí/No): Sí
- Ingrese el programa en formato cron (por ejemplo, * * * * * ): 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 dependencias
- Reutilización de la configuración
La herramienta guarda su configuración en el archivo config.yaml y le 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.
Prácticas recomendadas
- Autenticación
- Utilice la autenticación de par de claves siempre que sea posible.
- Rotar las credenciales con regularidad.
- Utilice los permisos mínimos requeridos.
- Rendimiento
- Ajuste el número de subprocesos en función de las capacidades de su sistema.
- Comience con un subconjunto más pequeño de tablas para realizar pruebas.
Solución de problemas
- Problemas comunes y soluciones:
- Tipo de autenticación no válido
- Asegúrese de seleccionar "1" (usuario) o "2" (key_pair) cuando se le solicite.
- Tipo de autenticación no válido
- Configuración de Cron Job
- Verifique que tiene los permisos del sistema adecuados.
- Compruebe los registros del sistema si el trabajo no se puede ejecutar.
- Asegúrese de que el ds_to_snowflake.py tenga los permisos correctos.
- Verifique la configuración del trabajo cron comprobando 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 cualquier cambio.
- Soporte
- Compruebe la salida de registro del script.
- Revise su archivo config.yaml .
- Póngase en contacto con el administrador del sistema si tiene problemas relacionados con los permisos.
- Comuníquese con el soporte de Procore para problemas de acceso a Delta Share.
Nota: Recuerde siempre hacer una copia de seguridad de su configuración antes de realizar cambios y probar primero las nuevas configuraciones en un entorno que no sea de producción.