Proyectos

Fuentes de Datos

Cada proyecto tendrá sus propias conexiones a fuentes de datos y diferentes entornos. En esta página es donde puedes agregar o editar tus conexiones que se utilizarán en tu Modelo.

En este documento encontrarás información sobre:

  • Taps
  • Sinks
  • Importación y exportación de taps y sinks
  • Entornos

Taps

Los Taps son conexiones de entrada a bases de datos. Los taps disponibles pueden variar dependiendo de tu licencia, pero hay diferentes tipos.

Un tap solo puede tener un modelo. No es posible crear múltiples modelos para un único tap.

OSS

Bases de datos OSS (OpenSource) soportadas:

  • MySQL
  • SQLite
  • PostgreSQL

Bases de datos propietarias

  • SQL Server
  • Oracle
  • IBM Db2 for i (AS/400)
  • IBM Db2 for z/OS
  • Azure SQL Database (con el driver de SQL Server)
  • Salesforce

Para usar una base de datos Oracle es necesario instalar los drivers manualmente. Consulta cómo configurarlos aquí.

Para conectarte a una base de datos Oracle, es necesario agregar el host al campo Database:
Database: <host>/<database_name>

Bases de datos Big Data

Bases de datos Cloud

  • Databricks (SQL Warehouses de Databricks con Unity Catalog)

Ficheros y almacenamiento

  • File Storage: ficheros CSV, JSON, YAML, XML, Excel, Parquet y EDI en el disco local, por SSH/SFTP, en Google Drive o en SharePoint

En el selector de drivers del formulario de creación, los drivers se agrupan en Bases de datos OSS, Bases de datos Enterprise, Big data (MongoDB y Redis), Bases de datos Cloud (Google Cloud SQL y Databricks) y Archivos y almacenamiento (File Storage).

Sinks

Los Sinks son conexiones de salida a bases de datos. Al igual que los Taps, se dividen por tipo de base de datos según el tipo de licencia.

Hay dos tipos de sinks:

  • Estáticos: Los sinks siempre se refieren a la misma base de datos.
  • Dinámicos: Cada vez que se escribe en un sink, se crea una nueva base de datos en el host de la base de datos, donde proporcionamos los datos de conexión (nombre de la base de datos, usuario y contraseña para acceder a ella).

Importar y exportar

Los taps y sinks se pueden exportar a un fichero YAML e importar desde él, por ejemplo para copiar conexiones de un proyecto o de una instalación a otra.

Página Taps / Sinks
┌─────────────────────────────────────────────────────────────────────────┐
│ [Buscar] [Ordenar]  [Importar desde un archivo] [Exportar todo] [Crear] │
├─────────────────────────────────────────────────────────────────────────┤
│ Nombre        Driver     ...                 Acciones                   │
│ CRM prod      Postgres   ...                 [...] Editar               │
│                                                    Iniciar nuevo modelo │
│                                                    Exportar             │
│                                                    Eliminar             │
└─────────────────────────────────────────────────────────────────────────┘

Exportar

  • Exportar en el menú Acciones de una fila descarga ese tap o sink como <nombre>.yml. Los caracteres del nombre que no son letras, dígitos, _ o - se sustituyen por _
  • Exportar todo en la barra de herramientas descarga todos los taps (o sinks) del proyecto como una lista YAML, en taps-export-AAAA-MM-DD.yml o sinks-export-AAAA-MM-DD.yml. El buscador no filtra la exportación. Si no hay nada que exportar, se muestra el error No hay taps para exportar (o No hay sinks para exportar)
  • Los secretos nunca se escriben en el fichero. Se sustituyen por la máscara __GIGANTIC__123103810 (un secreto vacío sigue vacío):
    • la contraseña y la clave privada de la autenticación
    • la contraseña, la frase de paso y el texto de la clave privada del túnel SSH
    • Clave privada SSH y Frase de acceso SSH de DB2 for i
    • el Secreto de cliente de File Storage (Google Drive y SharePoint) y el Token de refresco (Google Drive)
    • los valores de las claves de los Parámetros personalizados que parecen un secreto. El nombre de la clave se compara sin tener en cuenta mayúsculas, _, - ni .: es un secreto si contiene password, passwd, passphrase, pwd, secret, token, credential, privatekey, apikey, accesskey, accountkey o keycontent, o si es solo key. Todo lo que cuelga de una de esas claves también se enmascara. Si se enmascara algo, los Parámetros personalizados se vuelven a escribir como YAML, sin sus comentarios. Claves como shardingKey o tlsCertificateKeyFile no son secretos y se mantienen

Formato del fichero

El fichero contiene un tap o sink, o una lista de ellos. Solo name y driver son obligatorios.

ClaveDescripción
nameNombre del tap o sink
driverUno de CSV, DB2i, DB2x, DB2z, Databricks, FileStorage, GoogleCloudSQL, MSSQL, MongoDB, MySQL, Oracle, Postgres, Redis, Salesforce, Sqlite
host, port, database, dbSchema, owner, containerCampos de conexión. Su significado depende del driver (ver las páginas de drivers)
customParamsParámetros personalizados, como texto YAML
environmentEntorno, como id o como { id, name }. Solo se usa el id
authtype (none, username/password, passwordManager, ...), username, password, domain, authdatabase, role, consumerKey, privateKey y las claves del gestor de contraseñas passwordManagerId, passwordManagerUsername, passwordManagerURLPath, passwordManagerENV. Tipo por defecto: none
tunnelTúnel SSH: enabled, host, port, authType (password o privateKey), privateKeyType (path o text), privateKey, privateKeyPath, username, password, passphrase. Por defecto: enabled: false, authType: password, privateKeyType: path
backendMode, remoteTempPath, sshPort, sshPrivateKey, sshPassphraseSolo DB2 for i y DB2 for z. backendMode es el backend del driver; las demás claves son la configuración del modo SSH de DB2 for i (Ruta temporal remota, Puerto SSH, Clave privada SSH, Frase de acceso SSH)
overwriteAllowedSolo taps
addToModels, isDynamic, prefix, writeModesSolo sinks. Por defecto: false, false y vacío. writeModes es la lista de modos de escritura permitidos (truncate, drop, append, update, merge); indícala en el fichero, porque si falta el sink se guarda con una lista vacía en lugar de los cinco modos que el formulario marca por defecto

Ejemplo con un tap:

- name: CRM production
  driver: Postgres
  host: db.example.com
  port: '5432'
  database: crm
  dbSchema: public
  customParams: ''
  auth:
    type: username/password
    username: gig_reader
  tunnel:
    enabled: false
  overwriteAllowed: false

Ejemplo con un sink:

name: CRM test
driver: Postgres
host: test-db.example.com
port: '5432'
database: crm_test
dbSchema: public
auth:
  type: username/password
  username: gig_writer
tunnel:
  enabled: false
addToModels: false
isDynamic: false
writeModes:
  - truncate
  - append

Importar

  1. Abre la página Taps o Sinks y pulsa Importar desde un archivo
  2. Elige un fichero .yml o .yaml
  3. Todas las entradas se comprueban antes de crear nada. Si una entrada es incorrecta, no se importa nada y se muestra uno de estos errores:
    • Archivo YAML no válido
    • Cada entrada debe tener al menos los campos "name" y "driver"
    • Driver "<driver>" no válido. Drivers válidos: ...
  4. Cada entrada crea un tap o sink nuevo. Igual que al crear un tap desde el formulario, cada tap nuevo recibe un modelo llamado main y un hueco de licencia libre, si lo hay. Un sink con addToModels: true se añade a los modelos de los taps con el mismo driver
  5. Una entrada cuyo nombre ya usa un tap (o sink) del proyecto, o una entrada anterior del fichero, se omite. El aviso No importado, ya existe un tap con el mismo nombre: <nombres> (o un sink) indica los nombres omitidos. El resto de entradas se importa

Para importar, para el menú Acciones de cada fila y para el botón Crear hace falta el permiso de rol Create and edit taps and sinks. Los Parámetros personalizados deben ser un objeto YAML; si no, la entrada falla con Parámetros personalizados en el yaml no válidos.

  • Duplicados: la importación nunca modifica un tap o sink existente, así que importar el mismo fichero dos veces no crea nada la segunda vez. Para sustituir un tap o sink por el del fichero, elimínalo o cámbiale el nombre antes de importar.
  • Secretos: un secreto enmascarado no se importa. El tap o sink nuevo se guarda sin ese secreto (una clave enmascarada de los Parámetros personalizados se quita), así que después de importar edita cada tap o sink y vuelve a escribir los secretos. Un secreto escrito en claro en el fichero sí se importa.
  • Los campos de conexión que no son secretos (host, usuario, rutas...) y el resto de Parámetros personalizados se exportan en texto plano.

Entornos

Es posible crear entornos para agrupar taps y/o sinks, de modo que puedas tener tus conexiones organizadas.

Un tap o sink solo puede pertenecer a un entorno.