Recientemente he recibido algunas solicitudes para compartir información sobre el uso del conector de datos Snowflake basado en REST con JMP 19.
Por suerte, ¡ya había hecho un vídeo al respecto! La publicación más fácil de mi vida.
Para quienes deseen ir directamente al uso de JMP, diríjanse al minuto 2:11.
Transcripción (aproximada):
Me llamo Chris, soy desarrollador de software en JMP y quiero compartir información sobre el conector de datos Snowflake basado en REST, ¡novedad en JMP 19!
Con este conector, los usuarios experimentarán un rendimiento superior en comparación con el conector Snowflake basado en ODBC. Además, el conector basado en REST funciona en JMP sin necesidad de instalar el controlador ODBC Snowflake.
Objetivos
Hoy voy a hablar de:
- ¿Qué es Snowflake?
- ¿Por qué querrías utilizar el conector Snowflake basado en REST?
- Cómo configurar y conectarse con el conector Snowflake basado en REST.
- Algunos consejos para solucionar problemas.
¿Qué es Snowflake?
Para quienes no estén familiarizados con Snowflake, una de sus descripciones es: "Snowflake combina un motor de consultas SQL completamente nuevo con una arquitectura innovadora diseñada de forma nativa para la nube".
Desde la perspectiva del usuario, Snowflake almacena datos. Los usuarios pueden enviar consultas SQL para acceder a ellos, como lo harían con cualquier base de datos SQL, pero en el backend, los datos se almacenan en uno o más proveedores de nube como AWS, Google Cloud o Azure. Destaca por su capacidad para escalar los recursos según las necesidades de los clientes.
Snowflake también proporciona una interfaz web llamada Snowsight, donde los usuarios pueden ejecutar consultas, administrar Snowflake, cargar datos, crear flujos de datos y supervisar la actividad y el uso.
ODBC frente a REST
Ahora, en JMP 19, los usuarios tienen dos opciones para acceder a los datos de Snowflake dentro de JMP: una es mediante el conector de datos ODBC de Snowflake y la otra mediante el conector REST. Este último aprovecha el procesamiento multihilo para la obtención de datos, lo que permite que las consultas se completen mucho más rápido en comparación con el controlador ODBC.
Limitaciones de REST
Actualmente, los métodos de autenticación compatibles son "nombre de usuario y contraseña" con el autenticador predeterminado de Snowflake. Otra opción es OAuth, y la última son los tokens de acceso programáticos, destinados a tareas como la automatización de scripts.
El conector basado en REST utiliza la API SQL de Snowflake internamente, por lo que algunas operaciones como GET y PUT con almacenamiento temporal de datos no son compatibles.
Conectando
Sabiendo todo esto, veamos cómo configurar un conector basado en REST y cómo establecer la conexión en JMP.
(abrir JMP)
Para empezar, abramos la interfaz del conector de datos de JMP.
(navegar… y hablar)
Busca Snowflake en la barra de búsqueda, selecciona el conector Snowflake integrado y crea uno nuevo.
Autenticación con contraseña de usuario
Antes de empezar, cabe mencionar que muchas de estas opciones pueden requerir información de un administrador de Snowflake y, posiblemente, de otras personas, dependiendo de sus sistemas de autenticación. Pero vamos a crear una conexión usando nombre de usuario y contraseña.
Lo primero que necesitamos es la URL de Snowflake, que suele ser la forma en que los usuarios acceden a la interfaz web de Snowsight y normalmente termina con .
El campo "Almacén" indica el almacén al que desea conectarse, al igual que los campos "Base de datos" y "Rol". Si los deja en blanco, se utilizarán los valores predeterminados del usuario, si los ha definido. Es común que los usuarios tengan restricciones en cuanto a roles o tablas, por lo que valores incorrectos podrían impedir la conexión.
Por último, introduce tus credenciales en los campos de nombre de usuario y contraseña. Puedes dejar el campo de contraseña en blanco; el sistema te la pedirá al conectarte. Prueba la conexión con el botón de prueba y, si lo deseas, guarda la configuración.
2FA
Es posible que JMP se bloquee al intentar conectar, lo que podría indicar que Snowflake está esperando la autenticación de dos factores (2FA). Si su cuenta está configurada con 2FA, deberá responder a la solicitud. Por ejemplo, puede usar la aplicación Duo en su teléfono para permitir la conexión.
Tras establecer una conexión exitosa, podrá ver los esquemas y las tablas de la base de datos a la que se ha conectado. A continuación, utilice la función "Abrir tabla" o el Generador de consultas para importar los datos a JMP.
Consola SQL
La consola SQL es una novedad en JMP 19, ya que permite ejecutar consultas con múltiples instrucciones mediante conectores compatibles. Es similar a ejecutar una consulta SQL personalizada, pero además permite abrir varias tablas a la vez con una sola consulta. Puede guardar su trabajo como un archivo .sql y abrirlo posteriormente para usarlo repetidamente.
Conectando con token de acceso programático
Para los usuarios que necesiten omitir la autenticación de dos factores (2FA) para la creación de scripts o para su uso con scripts de actualización de JMP Live, otra forma de conectarse es mediante un token de acceso programático. Este token temporal tiene una validez de hasta un año. Póngase en contacto con su administrador de Snowflake para generar un token para su usuario.
Para usar el token con JMP, siga los mismos pasos que antes para crear un conector Snowflake con nombre de usuario y contraseña, pero introduzca el token en el campo de contraseña del conector en lugar de su contraseña habitual. Siguiendo este proceso, debería poder conectarse normalmente sin necesidad de autenticación de dos factores (2FA).
Conéctate con OAuth
Para conectarse mediante OAuth, la mayoría de los campos provienen de sus administradores de Snowflake y seguridad. Asegúrese de que los campos de nombre de usuario y contraseña estén en blanco para este tipo de autenticación. Como antes, complete el campo URL de Snowflake y también los campos de base de datos, almacén y rol, si corresponde. Los campos restantes se enumeran en la sección OAuth y provendrán de su administrador. Al conectarse con OAuth, probablemente deberá autenticarse y es posible que también deba completar una autenticación de dos factores. En mi caso, se me redirige a una ventana del navegador para ingresar mis credenciales.
Solución de problemas
También mencionaremos algunos problemas con los que podrías encontrarte y algunas posibles soluciones.
- Error de rol/almacén: Al conectarse, puede aparecer un error genérico que dice: “ Error de compilación SQL: El objeto no existe o la operación no se puede realizar”.
Lo primero que revisaría es si su rol, almacén y base de datos son correctos. Si los ha dejado en blanco, es posible que deba especificar explícitamente a qué recurso intenta acceder. Si los ha completado, verifique que estén escritos correctamente y que su usuario tenga acceso a dichos recursos. Para ello, consulte con su administrador de Snowflake, verifique su configuración con Snowsight o utilice una herramienta de consola como snowsql o la CLI de Snowflake.
- HTTPS: Algunas configuraciones de Snowflake tienen restricciones de IP o los recursos se encuentran detrás del firewall de la empresa. Asegúrese de tener acceso a dichos recursos, lo que puede incluir acceder a la red de su empresa o configurar los campos proxy y noproxy en el conector de datos. Además, es posible que deba deshabilitar TLS mediante el campo Secure si, por ejemplo, su infraestructura utiliza certificados autofirmados. No deshabilite TLS a menos que sepa que esta es la configuración correcta, ya que esto podría permitir ataques de intermediario (man-in-the-middle).
Gracias por ver este vídeo. Espero que les haya resultado útil para comprender las ventajas del conector Snowflake basado en REST, aprender a configurar un nuevo conector de datos de Snowflake y, en definitiva, conectarse a los datos de Snowflake dentro de JMP.
En snowflake.com encontrará mucha más información sobre cómo usar Snowflake y ejecutar consultas en Snowflake.
Esperamos que los usuarios valoren las mejoras de rendimiento de este conector y estamos deseando seguir mejorándolo. ¡Gracias!