Snowflake

En este artículo se describe cómo conectar Tableau a un almacén de datos de Snowflake y cómo configurar la fuente de datos.

Notas de uso: Autenticación de pares de claves con Snowflake

  • Para permitir el uso de la autenticación por pares de claves con Snowflake, debe instalar un controlador ODBC de Snowflake con la versión 3.4.0 o una más reciente.
  • La autenticación de pares de claves está disponible para Tableau Desktop y Tableau Cloud a partir de la versión 2024.3. Estará disponible en Tableau Server en una versión futura.
  • La publicación de libros de trabajo con autenticación de pares de claves Snowflake no es compatible con la Creación web. Debe utilizar Tableau Desktop para crear los libros de trabajo, que luego se pueden publicar en Tableau Cloud.

Antes de empezar

Antes de empezar, recopile esta información de conexión:

  • Nombre del servidor al que desea conectarse
  • Método de autenticación:
    • OAuth: utilice este método si desea habilitar la federación desde un IDP.
    • Nombre de usuario y contraseña: utilice este método si desea almacenar las credenciales de usuario en Snowflake.
    • Nombre de usuario y contraseña de Okta: utilice este método si planea utilizar Okta para administrar su autenticación.
    • Autenticación por pares de claves: utilice credenciales de pares de claves públicas y privadas para una conexión de seguridad más fuerte.
  • Las credenciales de inicio de sesión necesarias para el método de autenticación que elija.
    Nota: Si utiliza la autenticación de par de claves, debe utilizar OpenSSL versión 3.x o más reciente para crear las claves.
  • (Opcional) Ejecutar instrucción SQL inicial cada vez que Tableau se conecta.
  • (Opcional) Cualquier parámetro de controlador personalizado o un nuevo tamaño VARCHAR predeterminado para usar con esta conexión.

Nota: Para usar Tableau Cloud con autenticación de par de claves, también debe guardar las credenciales en Tableau Cloud antes de poder publicar libros de trabajo para compartir. Para obtener más información, consulte Configurar Snowflake para la autenticación por pares de claves.

Controlador necesario

Este conector necesita un controlador para comunicarse con la base de datos. Si el controlador no está instalado en el equipo, Tableau muestra un mensaje en el cuadro de diálogo de conexión con un enlace a la página Descarga de controladores(El enlace se abre en una ventana nueva), donde podrá encontrar enlaces de controladores e instrucciones de instalación.

Nota: Para permitir el uso de la autenticación por pares de claves con Snowflake, debe instalar un controlador ODBC de Snowflake con la versión 3.4.0 o una más reciente.

Establecer la conexión y configurar la fuente de datos

Después de seleccionar Snowflake como su conexión, aparecerá un cuadro de diálogo con 3 pestañas. Utilice la pestaña General para seleccionar el servidor, el almacén y el tipo de autenticación. Puede usar también SQL inicial para ejecutar opcionalmente un comando SQL al principio de cada conexión. Para obtener más información, consulte Ejecutar SQL inicial. Por último, puede utilizar la pestaña Avanzado para agregar parámetros de controlador personalizados y un tamaño VARCHAR predeterminado.

Para obtener información sobre cómo configurar OAuth para conexiones entre Tableau y Snowflake, consulte Configurar OAuth para conexiones de Snowflake(El enlace se abre en una ventana nueva) y OAuth externo para Snowflake.

Conectar Tableau a sus datos

  1. En la pantalla Conectar , debajo de A un servidor, seleccione Más y luego seleccione Snowflake.
  2. En la pestaña General, escriba el nombre del servidor al que desee conectarse.
  3. (Opcional) Indique el Rol y el Almacén.
  4. Seleccione el método de autenticación que utilizará: Nombre de usuario y contraseña, Nombre de usuario y contraseña de Okta, Iniciar sesión con OAuth, o Iniciar sesión usando un par de claves.
  5. (Opcional) Seleccione SQL inicial si desea ejecutar un comando SQL al principio de cada conexión. Para obtener más información, consulte Ejecutar SQL inicial.
  6. (Opcional) Para Tableau Desktop y Server, escriba cualquier parámetro personalizado en la pestaña Avanzado que desea utilizar para esta conexión. (No disponible en Tableau Cloud)
  7. Complete los pasos de inicio de sesión para el método de autenticación seleccionado:
    • Inicie sesión con OAuth:
      1. Haga clic en Iniciar sesión.
      2. En la página web que se abre, inicie sesión en Snowflake introduciendo su nombre de usuario y contraseña, y seleccionando Iniciar sesión. O, alternativamente, seleccione Inicio de sesión único si Snowflake está configurado para admitir SSO.
      3. Haga clic en Aceptar para confirmar la autorización para acceder a sus datos de Snowflake.
    • Nombre de usuario y contraseña:
      1. Introduzca el nombre de usuario y la contraseña opcional.
      2. Haga clic en Iniciar sesión.
    • Nombre de usuario y contraseña de Okta:
      1. Introduzca el nombre de usuario y la contraseña opcional.
      2. Indique el IdP SAML opcional (la URL de su servidor Okta).
      3. Haga clic en Iniciar sesión.
    • Iniciar sesión usando un par de claves
      1. En Servidor, escriba la dirección del servidor Snowflake.
      2. Indique el Almacén y, opcionalmente, el Rol.
      3. En Autenticación, seleccione Iniciar sesión con par de claves.
      4. Especifique el Nombre de usuario asociado a estas claves.
      5. En Archivo de clave privada, busque el archivo .p8 que contiene su clave privada.
      6. (Opcional) Escriba la Contraseña del archivo de clave privada si está protegido por una.
  8. A continuación, siga las instrucciones que se indican en Configurar la fuente de datos.
  9. Si Tableau no puede establecer la conexión, compruebe que las credenciales sean correctas. Si sigue sin poder conectar, su equipo tiene problemas para encontrar el servidor. Póngase en contacto con el administrador de red o de base de datos para que le ayude.

Tiempo de espera del token de acceso: validar siempre el TDC del token de acceso

El token de acceso de Snowflake caduca pasados 10 minutos. En determinados procesos de actualización de extracción, se establecen nuevas conexiones en un momento posterior del trabajo en el que el token de acceso ha caducado. Para solucionar este problema, agregamos una nueva capacidad, que está habilitada de forma predeterminada a partir de Tableau 2024.2. Para habilitar esta funcionalidad en versiones anteriores, puede utilizar el siguiente TDC.

<connection-customization class='snowflake' enabled='true' version='10.0'>
    <vendor name='snowflake' />
    <driver name='snowflake' />
    <customizations>
        <customization name='CAP_OAUTH_VALIDATE_ALWAYS' value='yes'/>
    </customizations>
</connection-customization>

Este TDC se puede utilizar con Tableau Desktop o Tableau Server incluyéndolo en la carpeta de fuentes de datos del repositorio de Tableau. Para Tableau Cloud, puede usar Bridge y configurar un TDC personalizado conectándose a través de allí. Para obtener más información, consulte Personalizar y ajustar una conexión.

Nota: Los TDC insertados no son compatibles con los flujos.

Personalizar la conexión utilizando los parámetros del controlador

Puede modificar la conexión realizada mediante el conector de Snowflake añadiendo parámetros de controlador a la cadena de conexión en la pestaña Avanzado:

Nota: No puede cambiar los parámetros del controlador que genera Tableau; solo puede añadir parámetros.

Por ejemplo, esta sintaxis especifica el servidor proxy que se usará cuando los valores de no_proxy no se cumplan e indica qué nombres de host pueden omitir el servidor proxy:

Proxy=http://proxyserver.company:80;no_proxy=.trustedserver.com;

Para otro ejemplo de parámetros de controlador personalizados, consulte Utilice un proxy para Snowflake.

También puede indicar un tamaño alternativo para VARCHAR en el campo Tamaño VARCHAR predeterminado (bytes). Para obtener más detalles sobre el uso de este campo y los impactos en el rendimiento, consulte la documentación de Snowflake ODBC.

Nota: Si desea personalizarlo sin insertarlo en la fuente de datos, puede configurar los parámetros en el registro en Windows (solo están disponibles los parámetros que están marcados como "Parámetros de configuración"). Para obtener más información sobre los parámetros de los controladores, consulte Parámetros de conexión y configuración de ODBC en el sitio web de Snowflake.

Configurar la fuente de datos

En la página de la fuente de datos, haga lo siguiente:

  1. (Opcional) Seleccione el nombre predeterminado de la fuente de datos en la parte superior de la página y luego escriba un nombre único para su uso en Tableau. Por ejemplo, utilice una nomenclatura de fuente de datos que ayude a que los demás usuarios de la fuente de datos puedan deducir a qué fuente de datos deben conectarse.

  2. En la lista desplegable Almacén, seleccione el almacén o utilice el cuadro de texto para buscar un almacén por el nombre.

    Nota: Si deja esto en blanco y no selecciona un almacén, Tableau utiliza el almacén virtual de Snowflake predeterminado.

    Para obtener más información, consulte Almacenes virtuales predeterminados en Snowflake.

  3. En la lista desplegable Base de datos, seleccione una base de datos o use el cuadro de texto para buscar una base de datos por el nombre.
  4. En la lista desplegable Esquema, seleccione un esquema o use el cuadro de texto para buscar un esquema por el nombre.
  5. En Tabla, seleccione una tabla o use el cuadro de texto para buscar una tabla por el nombre.
  6. Arrastre una tabla al lienzo y, a continuación, seleccione la pestaña de la hoja para iniciar el análisis.

Nota: Si publica sus libros de trabajo cuando usa la autenticación de par de claves, asegúrese de seleccionar el tipo de autenticación adecuado en la sección Administrar fuentes de datos de la ventana Publicar libro de trabajo.

Iniciar sesión en un equipo Mac

Al usar Tableau Desktop en un Mac, cuando especifique el nombre de servidor para conectarse, use un nombre de dominio completamente calificado, como por ejemplo, mydb.test.ourdomain.lan, en lugar de un nombre de dominio relativo, como por ejemplo, mydb o mydb.test.

Como alternativa, puede añadir el dominio a la lista de dominios de búsqueda del equipo Mac para que, cuando se conecte, solo tenga que proporcionar el nombre del servidor. Para actualizar la lista de dominios de búsqueda, vaya a Preferencias del sistema > Red > Avanzada y, a continuación, abra la pestaña DNS.

Almacenes virtuales predeterminados en Snowflake

Al crear una fuente de datos de Snowflake, creará un almacén de Snowflake (para recursos informáticos) y bases de datos de Snowflake (para recursos de datos). Tanto los almacenes como las bases de datos requieren permisos para acceder a ellos. Puede usar almacenes diferentes para acceder a la misma base de datos, dependiendo de la potencia de cálculo que necesite, suponiendo que tenga permisos para cada almacén y base de datos.

Al crear una fuente de datos, tiene la opción de elegir un almacén en una lista desplegable. Si deja esto en blanco y no selecciona un almacén, Tableau utiliza su almacén virtual de Snowflake predeterminado. Si posteriormente publica esa fuente de datos o libro de trabajo, cuando un usuario se conecta, Tableau utilizará el almacén virtual de Snowflake predeterminado de esa persona.

A cada usuario se le debe asignar un almacén predeterminado para que Tableau pueda usarlo de forma predeterminada para abrir un libro de trabajo desde una fuente de datos de Snowflake.

Utilice un proxy para Snowflake

Puede conectarse desde Tableau a través de un proxy a Snowflake. Si utiliza Tableau 2019.4 o una versión posterior, puede configurarlo con el cuadro de diálogo del conector escribiendo los parámetros necesarios en la pestaña Avanzado.

Por ejemplo:

proxy=http://proxyserver.company:80

Para obtener información sobre los parámetros que debe utilizar, consulte la documentación de Snowflake(El enlace se abre en una ventana nueva).

Nota: Tableau no utiliza un DSN para conectarse a Snowflake, por lo que puede ignorar las instrucciones de la documentación de Snowflake sobre el uso de un DSN.

Si utiliza una versión de Tableau anterior a la versión 2019.4, puede configurarla introduciendo los parámetros en un archivo TDC mediante odbc-extras.

Por ejemplo:

Copiar
<connection-customization class='snowflake' enabled='true' version='19.1'>
        <vendor name='snowflake' />
            <driver name='snowflake' />
                <customizations>
                <customization name='odbc-connect-string-extras' value='proxy=http://proxyserver.company:80' />
                </customizations></connection-customization>

Para obtener más información, consulte el artículo Personalizar la cadena de conexión para un conector nativo(El enlace se abre en una ventana nueva).

Solución de problemas

Rendimiento y tamaño de búsqueda

Para obtener el mejor rendimiento, especialmente para las extracciones, Tableau necesita determinar un tamaño de búsqueda óptimo. Hay dos formas de mejorar esto: establecer límites en los campos de longitud variable y habilitar buffers de búsqueda redimensionables. Para obtener los mejores resultados debe utilizar ambos.

Determinar el tamaño actual de búsqueda

El tamaño de búsqueda utilizado se registra en los registros de tabprotosrv. Tabprotosrv es el proceso sandbox del controlador. Este es un ejemplo:

ODBCRowsetSource::ODBCRowsetSource: se intenta establecer el tamaño de búsqueda de filas en 4128 filas, con 254 bytes por fila

Nota: Algunas de las sugerencias a continuación requieren TDC, pero no funcionarán en Tableau Cloud a menos que utilice Tableau Bridge. Con Tableau Bridge, puede instalar el TDC en el host de Bridge para que se aplique a todas las conexiones que pasan por ese host.

Límites de longitud de campo variable

Cuando se utilizan campos VARCHAR o VARBINARY ilimitados, el controlador devolverá el tamaño del campo como 16 MB. Esto provoca que Tableau utilice un tamaño de recuperación reducido para mantenerse dentro de los límites de memoria, lo que se traduce en una velocidad de consulta lenta. Hay varias maneras de abordar este problema:

  • Agregue un límite a la definición de la columna en la base de datos, como VARCHAR(256), o envuelva la tabla en una vista que haga lo mismo.
  • Utilice el campo "Tamaño VARCHAR predeterminado (bytes)" en la pestaña Avanzado al conectarse a Snowflake en Tableau Desktop. En Tableau 2024.3, este nombre cambió de "Tamaño máximo de VARCHAR", pero hace lo mismo. Establece el parámetro default_varchar_size para el controlador ODBC, que limitará el tamaño del campo devuelto a Tableau. Para obtener más información, consulte https://docs.snowflake.com/en/developer-guide/odbc/odbc-parameters(El enlace se abre en una ventana nueva).
  • Utilice una personalización de TDC como la que se muestra a continuación:

<connection-customization class='snowflake' enabled='true' version='10.0'>
<vendor name='snowflake' />
<driver name='snowflake' />
<customizations>
<customization name='CAP_ODBC_FETCH_BUFFERS_RESIZABLE' value='yes'/>
<customization name='odbc-connect-string-extras' value='default_varchar_size=512;default_binary_size=512'/>
</customizations>
</connection-customization>

Habilitar CAP_ODBC_FETCH_BUFFERS_RESIZABLE

Habilitado de forma predeterminada en Tableau 2024.3. Antes de eso, puede utilizar un TDC. Usaría un TDC como el que se muestra a continuación si desea configurar default_varchar_size en la base de datos.

<connection-customization class='snowflake' enabled='true' version='10.0'>
<vendor name='snowflake' />
<driver name='snowflake' />
<customizations>
<customization name='CAP_ODBC_FETCH_BUFFERS_RESIZABLE' value='yes'/>
</customizations>
</connection-customization>

Preguntas frecuentes

Aquí encontrará algunos problemas comunes y los pasos para resolverlos.

Obtengo un error "Este campo XXX no existe", ¿qué debo hacer?

Este error aparece cuando usa un campo de cálculo, lo agrega a la hoja de trabajo y reemplaza la fuente de datos con los datos de Snowflake (SQL personalizado).

Utilice la función Reemplazar referencias de campo para resolver el error. Para obtener información adicional sobre cómo reemplazar referencias de campo, consulte Reemplazar referencias de campo.

 

Consulte también

¡Gracias por sus comentarios!Sus comentarios se han enviado correctamente. ¡Gracias!