Ejemplo: personalizar una conexión ODBC

Si utiliza un conector para una base de datos que admite SQL, Tableau genera instrucciones SQL ajustadas a esa base de datos. Dado que Tableau no tiene representación del dialecto SQL que usa una fuente de datos ODBC, debe inferir la sintaxis soportada a través de una variedad de pruebas. Si un controlador entrega información incorrecta o incompleta sobre el dialecto SQL que soporta, puede usar personalizaciones de Tableau para ajustar esta información de conexión a fin de mejorar la funcionalidad y el rendimiento.

En este artículo creará una conexión ODBC, examinará el archivo de fuente de datos de Tableau (TDS) resultante y usará una parte de este archivo para crear un archivo de personalización de origen de datos de Tableau (TDC) que podrá usar posteriormente para personalizar la conexión ODBC. Antes de comenzar, debe familiarizarse con el contenido de Tableau y ODBC.

Nota: Tableau proporcionará niveles razonables de atención al cliente para ayudarle a solucionar los problemas de conexiones con los controladores ODBC, pero no puede crear ni personalizar un conector para que funcione con un controlador ODBC específico.

Crear una conexión ODBC

En esta sección se muestra, mediante un ejemplo, cómo crear una conexión ODBC. En el ejemplo, se conectará a una base de datos SQLite usando el controlador SQLite ODBC.

Requisitos previos

La conexión ODBC de este artículo se basa en SQLite (http://www.sqlite.org/), una base de datos de código abierto.

Debe descargar los dos elementos siguientes:

Exención de responsabilidad: esta información hace referencia a un producto de terceros. Este ejemplo no es una recomendación del producto frente a otros productos de la competencia.

Crear una conexión

Para crear una conexión ODBC, debe conectarse a la base de datos Northwind usando el controlador SQLite3 ODBC y, a continuación, guardar la conexión como archivo de fuente de datos de Tableau (TDS).

  1. Abra Tableau Desktop.

  2. En la página de inicio, en Conectar, haga clic en Otras bases de datos (ODBC).

    Nota: Para una base de datos que ya tiene un conector compatible con Tableau(El enlace se abre en una ventana nueva), puede hacer clic en el nombre de ese conector para crear una conexión.

  3. En Conectarse mediante, seleccione Controlador y, después, en la lista desplegable, seleccione Controlador SQLite3 ODBC.

  4. Haga clic en Conectar.

  5. Junto al cuadro de texto Nombre de base de datos, haga clic en Examinar, vaya hasta la ubicación del archivo Northwind.sl3 y haga clic en Abrir.

  6. Haga clic en Aceptar para cerrar el cuadro de diálogo y luego en Iniciar sesión.

  7. En la página Fuente de datos, en el cuadro de texto Tabla, escriba Orders.

  8. Arrastre la tabla Pedidos hasta el lienzo y, a continuación, haga clic en pestaña de la hoja.

    Se abre un cuadro de diálogo "Tableau identificó limitaciones para la fuente de datos ODBC". Puede revisar los detalles o cerrar el cuadro de diálogo y continuar. Para obtener más información, consulte Cómo determina Tableau las funcionalidades del controlador ODBC.

  9. Seleccione Datos > Pedidos [ruta a Northwind.sl3] > Agregar a fuentes de datos guardadas.

  10. Haga clic en Guardar.

  11. Cierre el libro de trabajo. Cuando se le pregunte si quiere guardar los cambios, haga clic en No.

Ahora puede abrir el archivo TDS para examinar la conexión SQLite.

Revisar la estructura XML de un archivo TDS

Abra el archivo de fuente de datos de Tableau (TDS) en un editor de texto para ver su estructura XML. De forma predeterminada, el archivo que ha creado antes tiene el nombre Northwind.sl3.tds y se encuentra en la siguiente ruta:

Users\[your name]\Documents\My Tableau Repository\Datasources

o

Users\[your name]\Documents\My Tableau Repository (Beta)\Datasources

Esto es un documento XML que describe la conexión SQLite a la tabla Órdenes de Northwind. En la sección <connection>, busque el elemento <connection-customization>, que contiene los elementos <customization> que puede editar.

Nombre de proveedor y de controlador

La sección de personalización de conexión comienza con los nombres detectados por Tableau para el controlador ODBC y el proveedor de la base de datos. Tableau usa esta información para asociar una personalización de conexión específica con un solo tipo de fuente de datos ODBC. La sección tiene este aspecto:

<connection-customization class='genericodbc' enabled='false' version='10.1'>
<vendor name='SQLite' />
<driver name='SQLite3 ODBC Driver' />
<customizations>

Tipos de personalizaciones

Tableau le permite realizar dos tipos de personalizaciones: Capacidades específicas de Tableau y llamadas de la API ODBC a SQLGetInfo. Estas personalizaciones se componen de pares de nombre/valor, en los que los nombres siguen una convención de CAP_ para las capacidades de Tableau y SQL_ para las llamadas de la API a SQLGetInfo.

El archivo de fuente de datos guardado contiene ejemplos de ambos tipos de personalizaciones. Estas personalizaciones representan los valores que Tableau pudo detectar al consultar el controlador para realizar la conexión. Pero es posible que la lista de personalizaciones esté incompleta o sea incorrecta. Puede usar personalizaciones para modificar y definir el comportamiento de Tableau cuando se conecta a una fuente de datos ODBC.

Los siguientes artículos proporcionan una referencia completa sobre las personalizaciones. Debe conocer cómo necesita ajustar la conexión ODBC para que funcione según lo esperado en su entorno. Revise las listas para hacerse una idea sobre las personalizaciones que puede usar para ajustar su conexión ODBC.

Formato de valores de personalización

  • Todos los valores de personalización se representan mediante cadenas para cada par de nombre y valor.

  • Las capacidades de Tableau son siempre valores booleanos representados por "yes" o "no".

  • Los valores SQLGetInfo pueden ser un entero largo, un entero corto o datos en cadena, dependiendo del valor de retorno esperado de SQLGetInfo para el identificador dado.

  • Muchos de los campos de enteros son máscaras de bits que representan una colección de capacidades.

Globalizar las personalizaciones con un archivo TDC

Para que los cambios se apliquen en todas las conexiones de una fuente de datos ODBC específica, debe crear un archivo de personalización de fuente de datos de Tableau (TDC). Este archivo solo contiene la sección <connection-customization> y se aplicará a todas las nuevas conexiones de Tableau que coincidan con el nombre de proveedor de base de datos y el nombre de controlador indicados en el archivo TDC (como se indica en Nombre de proveedor y de controlador). Cualquier libro de trabajo o archivo de fuente de datos que ya tenga una sección de personalización habilitada solo usará las personalizaciones que esta suministra, no el archivo TDC.

Importante: Tableau no hace pruebas con archivos TDC ni los admite. Estos archivos se deben usar como una herramienta para explorar o para tratar algunos problemas ocasionales que tenga con la conexión de datos. La creación y el mantenimiento de archivos TDC hace necesario editar con cuidado, y no se permite compartir dichos archivos.

Crear un archivo TDC

Cuando crea un archivo TDC, debe guardarlo en la ubicación correcta para que la conexión pueda utilizarlo. Si crea un libro de trabajo que desea publicar en Tableau Server, deberá guardar el archivo TDC también en el servidor. Para obtener más información, consulte Usar un archivo TDC con Tableau Server(El enlace se abre en una ventana nueva) en la Base de conocimiento de Tableau.

Estructura de un archivo TDC

Cada archivo TDC sigue esta estructura básica:

<connection-customization class=DSCLASS enabled='true' version='10.0'>
    <vendor name=VENDOR />
    <driver name=DRIVER />
    <customizations>
        <customization name='CAP_FAST_METADATA' value='yes'/>
        <customization name='CAP_SOMETHING_ELSE' value='yes'/>
        ...
    </customizations>
</connection-customization>

Un archivo TDC tiene tres secciones principales:

  • Variables de personalización de la conexión
  • Nombres de proveedor y de controlador
  • Las personalizaciones en sí mismas

La sección connection-customization de la conexión incluye lo siguiente:

  • class: la fuente de datos a la que desea conectarse y que quiere personalizar.
  • enabled: especifica si se aplican las personalizaciones de conexión de archivos TDC. En el archivo TDC, siempre se establece como "true".
  • version: Tableau ignora el número de versión.

La siguiente sección es crucial porque identifica el nombre del proveedor y el nombre del controlador del proveedor de la base de datos para la fuente de datos de este archivo TDC. Cada archivo TDC puede enlazar con uno solo tipo de fuente de datos. Para nuestras fuentes de datos nativas, estos nombres deben coincidir con el nombre de clase de la fuente de datos; por ejemplo, "teradata" para nuestras conexiones Teradata. En el caso de las fuentes de datos ODBC, el nombre del proveedor y el nombre del controlador del archivo TDC deben coincidir con lo que la base de datos y el controlador comunican a Tableau; por ejemplo, "SQLite" y "SQLite3 ODBC Driver", respectivamente.

En la última sección se enumeran las personalizaciones de la conexión reales.

A continuación se muestran dos archivos TDC de ejemplo: primero, una conexión ODBC genérica y, segundo, una modificación de una conexión nativa de Salesforce. Tenga en cuenta que estos son solo para fines de ejemplo y las personalizaciones enumeradas no se seleccionan para lograr un objetivo específico.

<?xml version='1.0' encoding='utf-8' ?>
<connection-customization class='genericodbc' enabled='true' version='8.10'>
<vendor name='Gen_ODBC_Vendor'/>
<driver name='Gen_Driver'/>
<customizations>
<customization name='CAP_FAST_METADATA' value='yes' />
<customization name='CAP_ODBC_BIND_FORCE_MAX_STRING_BUFFERS' value='yes' />
<customization name='CAP_ODBC_BIND_PRESERVE_BOM' value='yes' />
</customizations>
</connection-customization>
<?xml version='1.0' encoding='utf-8' ?>
<connection-customization class='salesforce' enabled='true' version='8.10'>
  <vendor name='salesforce'/> 
  <driver name='salesforce'/>
  <customizations>
    <customization name='CAP_ODBC_EXPORT_CONTINUE_ON_ERROR' value='yes' />
    <customization name='CAP_ODBC_EXPORT_FORCE_SINGLE_ROW_BINDING' value='yes' />
    <customization name='CAP_ODBC_EXPORT_SUPPRESS_STRING_WIDTH_VALIDATION' value='no' />
  </customizations>
</connection-customization>

Use el archivo TDC en Tableau Desktop.

  1. Con un editor de texto, copie y pegue toda la sección <connection-customization> del archivo de fuente de datos guardado. Como referencia, consulte el archivo TDC de SQLite de ejemplo.

  2. Asigne al archivo el nombre odbc-sqlite.tdc y guárdelo en Documents\My Tableau Repository\Datasources.

    Nota: Puede asignar cualquier nombre al archivo, pero debe guardarlo con la extensión .tdc.

  3. Reinicie Tableau Desktop para aplicar el cambio.

  4. Cree una nueva conexión a SQLite como se describe en Crear una conexión.

  5. Localice y abra el archivo de registro de Tableau Desktop y busque un registro parecido al del ejemplo siguiente para comprobar que el archivo de personalización se ha aplicado a la nueva conexión.

Ubicación del archivo de registroEjemplo de registro
De manera predeterminada, C:\Users\<user>\Documents\Mi repositorio de Tableau\LogsFound matching TDC 'C:\\Users\\<name>\\Documents\\My Tableau Repository\\Datasources\\odbc-sqlite.tdc' for class='genericodbc', vendor='SQLite', and driver='SQLite3 ODBC Driver'

Usar el archivo TDC con Tableau Prep Builder

  1. Con un editor de texto, copie y pegue toda la sección <connection-customization> del archivo de fuente de datos guardado. Como referencia, consulte el archivo TDC de SQLite de ejemplo.

  2. Asigne al archivo el nombre odbc-sqlite.tdc y guárdelo en la siguiente ubicación:

    • Para Windows:

      Documents\My Tableau Prep Repository\Datasource

    • Para Mac:

      Documents/My Tableau Prep Repository/Datasources

    Nota: Puede asignar cualquier nombre al archivo, pero debe guardarlo con la extensión .tdc.

  3. Reinicie Prep para que se aplique el cambio.

  4. Localice y abra el archivo de registro y busque un registro parecido al del ejemplo siguiente para comprobar que el archivo de personalización se ha aplicado a la nueva conexión.

Ubicación del archivo de registroEjemplo de registro
De manera predeterminada, C:\Users\<user>\Documents\My Tableau Prep Repository\LogsFound matching TDC 'C:\\Users\\<name>\\Documents\\My Tableau Prep Repository\\Datasources\\odbc-sqlite.tdc' for class='genericodbc', vendor='SQLite', and driver='SQLite3 ODBC Driver'

Usar el archivo TDC en Tableau Server

  1. Con un editor de texto, copie y pegue toda la sección <connection-customization> del archivo de fuente de datos guardado. Como referencia, consulte el archivo TDC de SQLite de ejemplo.

  2. Asigne al archivo el nombre odbc-sqlite.tdc y guárdelo en la siguiente ubicación:

    • Para Windows:

      En versiones de Tableau Server anteriores a la 2018.2:

      Program Files\Tableau\Tableau Server\<version>\bin

      A partir de Tableau Server 2018.2:

      Program Files\Tableau\Tableau Server\packages\bin.<build number>

      Para todas las versiones de Tableau Server:

      ProgramData\Tableau\Tableau Server\data\tabsvc\vizqlserver\Datasources

      Para guardar el archivo, debe ser administrador de Windows en el equipo servidor.

    • Para Linux:

      /var/opt/tableau/tableau_server/data/tabsvc/vizqlserver/Datasources/

    Nota: Puede asignar cualquier nombre al archivo, pero debe guardarlo con la extensión .tdc. El archivo TDC se debe guardar en todos los nodos del servidor para que el comportamiento sea coherente.

  3. Para Tableau Prep Conductor (ejecución de flujos) o creación web de Prep (edición de flujos en la web), el archivo TDC se debe colocar en directorios adicionales.

    Prep Conductor

    • Para Windows:

      <data directory>\tabsvc\flowprocessor\Datasources

    • Para Linux:

      <data directory>/tabsvc/flowprocessor/Datasources

    Creación web de Prep

    • Para Windows:

      <data directory>\tabsvc\flowminerva\Datasources

    • Para Linux:

      <data directory>/tabsvc/flowmineva/Datasources

  4. Reinicie Tableau Server para aplicar el cambio.

  5. Localice y abra el archivo de registro de Tableau Server y busque un registro parecido al del ejemplo siguiente para comprobar que el archivo de personalización se ha aplicado a la nueva conexión.

Ubicación del archivo de registroEjemplo de registro

<ruta de instalación>\Tableau Server\data\tabsvc\log\vizqlserver

<ruta de instalación>\Tableau Server\data\tabsvc\log\backgrounder

<ruta de instalación>\Tableau Server\data\tabsvc\log\dataserver

<ruta de instalación>\Tableau Server\data\tabsvc\log\vizportal

Found matching TDC 'C:\\ProgramData\\Tableau\\Tableau Server\\data\\tabsvc\\vizqlserver\\Datasources\\odbc-sqlite.tdc for class='genericodbc', vendor='SQLite', and driver='SQLite3 ODBC Driver'

Archivo TDC de SQLite de muestra

<?xml version='1.0' encoding='utf-8' ?>
<connection-customization class='genericodbc' enabled='true' version='7.8'>
<vendor name='SQLite' />
<driver name='SQLite3 ODBC Driver' />
	<customizations>
		<customization name='CAP_CREATE_TEMP_TABLES' value='yes' />
		<customization name='CAP_QUERY_BOOLEXPR_TO_INTEXPR' value='yes' />
		<customization name='CAP_QUERY_GROUP_BY_ALIAS' value='no' />
		<customization name='CAP_QUERY_GROUP_BY_DEGREE' value='yes' />
		<customization name='CAP_QUERY_JOIN_ACROSS_SCHEMAS' value='no' />
		<customization name='CAP_QUERY_JOIN_REQUIRES_SCOPE' value='no' />
		<customization name='CAP_QUERY_SUBQUERIES' value='yes' />
		<customization name='CAP_QUERY_SUBQUERIES_WITH_TOP' value='yes' />
		<customization name='CAP_SELECT_INTO' value='no' />
		<customization name='CAP_SELECT_TOP_INTO' value='yes' />
		<customization name='SQL_AGGREGATE_FUNCTIONS' value='127' />
		<customization name='SQL_SQL_CONFORMANCE' value='4' />
	</customizations>
</connection-customization>

Personalizar la conexión ODBC

Supongamos que ha creado una conexión ODBC a la fuente de datos y que ha comprobado que puede acceder a los metadatos y los datos que necesita. Ahora debe determinar si mediante la creación de un extracto o usando la conexión en tiempo real tal cual obtiene la funcionalidad que necesita. En ese caso, el archivo TDC que ha creado será suficiente y no necesitará personalizar la conexión.

Si el archivo TDC no funciona del modo que desea, puede personalizar la conexión. Debe conocer cómo necesita ajustar la conexión ODBC para que funcione según lo esperado en su entorno. Revise las listas para ver las personalizaciones que puede usar para ajustar su conexión ODBC.

Personalizaciones comunes para mejorar la funcionalidad

Las siguientes personalizaciones pueden ayudar a mejorar la funcionalidad de las fuentes de datos cuyas capacidades predeterminadas no sean óptimas.

  • CAP_SUPPRESS_DISCOVERY_QUERIES: al ajustar este valor en true se evita que Tableau realice consultas SQL al principio de la conexión para determinar las capacidades del controlador. Deberá considerar qué otras capacidades deben habilitarse explícitamente, ya que Tableau no podrá determinarlas automáticamente.

  • SQL_SQL_CONFORMANCE: este ajuste indica qué nivel del estándar SQL admite por completo la fuente de datos. Tableau funciona mejor con compatibilidad de nivel de entrada como mínimo, de modo que este valor debe ser al menos de 1 si la fuente de datos lo admite.

  • SQL_AGGREGATE_FUNCTIONS: este ajuste indica qué funciones de agregado se admiten, como MIN, MAX, SUM. Un valor de '127' indica que se admiten todas las funciones de agregados SQL estándar.

Manejo de fuentes de datos muy limitadas

Algunas fuentes de datos están tan limitadas que Tableau no puede completar los pasos para crear una conexión. De manera ocasional, esto se debe a colisiones dentro del controlador, lo que causa que Tableau deje de funcionar. Puede usar un archivo TDC global para evitar que Tableau emita consultas o compruebe las capacidades que pueden estar asociadas a la inestabilidad.

Para crear este archivo necesita conocer el nombre del proveedor de la base de datos y el nombre del controlador ODBC.

  1. Cree una nueva conexión en Tableau, abra el archivo de registro y busque una línea como la siguiente:
    GenericODBCProtocol::Connect: Detected vendor: 'SQLite' and driver: 'SQLite3 ODBC Driver'
  2. Cree un archivo TDC con los nombres de vendor y driver indicados. Consulte Nombre de proveedor y de controlador para ver un ejemplo.

  3. Use las personalizaciones, como CAP_SUPPRESS_DISCOVERY_QUERIES, para restringir la interacción de Tableau con una fuente de datos limitada.

Configurar los ajustes del controlador ODBC

Los controladores ODBC proporcionan cuadros de diálogo para suministrar detalles de conexión como servidor, nombre de usuario y contraseña. Existen muchas ofertas de opciones avanzadas para controlar la conducta de la conexión. Debe considerar estas opciones cuando explore formas de mejorar la funcionalidad o rendimiento de su conexión ODBC. En especial, busque ajustes que controlen los elementos que se muestran a continuación, ya que estos han sido la causa de problemas pasados con las conexiones ODBC en Tableau:

  • Aislamiento de transacción: elija READ, COMMITTED o SERIALIZABLE para asegurarse de que las consultas no incluyan datos de transacciones pendientes en sus resultados.

  • Cursores: elija cursores sostenibles o desplegables antes que de transmisión. Ya que Tableau cierra una transacción después de cada consulta analítica de solo lectura, los cursores de transmisión pueden truncarse y llevar a resultados incompletos en Tableau.

  • Búferes de fila y conjunto de resultados: elija tamaños de búfer grandes para mejorar el rendimiento de la recuperación de muchas filas, lo que puede mejorar bastante la velocidad de la creación de extractos. Esto se denomina a veces tamaño de memoria caché o tamaño de respuesta.

  • Conjunto de caracteres: en orden de preferencia decreciente sonUTF-16, UTF-8 y ASCII.

Personalizaciones SQLite avanzadas

Tableau cuenta con personalizaciones especiales para SQLite integradas en el producto. Estas personalizaciones prevalecen sobre cualquier personalización de conexión para SQLite en el archivo de libro de trabajo, de fuente de datos o TDC global. Para efectuar cambios avanzados en las personalizaciones de conexión SQLite, deberá engañar a Tableau para que ignore su propio dialecto SQLite. Puede hacerlo cambiando el nombre informado del proveedor de la base de datos (<customization name='SQL_DBMS_NAME' value='SQLite' />) a un valor distinto, como SQLite-Tableau.

Referencia de la documentación de ODBC

MSDN de Microsoft ofrece documentación para el estándar ODBC. Los Apéndices ODBC(El enlace se abre en una ventana nueva) son los más importantes como recursos para la información de este artículo, específicamente:

Consulte también

Otras bases de datos (ODBC): describe cómo conectar los datos con el conector ODBC.

Tableau y ODBC: en este artículo se proporciona información general sobre ODBC, se describe cómo determina Tableau la funcionalidad de un controlador ODBC y se enumeran las preguntas más frecuentes.

Referencia de las personalizaciones de las capacidades de Tableau: en este artículo se enumeran las personalizaciones que puede usar para definir las capacidades de Tableau que admite la fuente de datos.

Referencia de las personalizaciones de ODBC/SQL: en este artículo se enumeran las personalizaciones que representan las partes de los estándares ODBC y SQL admitidas por los informes del controlador ODBC.

Personalizar la cadena de conexión para un conector nativo(El enlace se abre en una ventana nueva): en este artículo de la comunidad de Tableau se describe cómo modificar la conexión realizada con un conector nativo usando la personalización odbc-connect-string-extras.

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