> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-trino-dialect.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Fuente de diccionario de PostgreSQL

> Configure PostgreSQL como fuente de diccionario en ClickHouse.

Ejemplo de configuración:

<Tabs>
  <Tab title="DDL">
    ```sql theme={null}
    SOURCE(POSTGRESQL(
        port 5432
        host 'postgresql-hostname'
        user 'postgres_user'
        password 'postgres_password'
        db 'db_name'
        table 'table_name'
        replica(host 'example01-1' port 5432 priority 1)
        replica(host 'example01-2' port 5432 priority 2)
        where 'id=10'
        invalidate_query 'SQL_QUERY'
        query 'SELECT id, value_1, value_2 FROM db_name.table_name'
    ))
    ```
  </Tab>

  <Tab title="Archivo de configuración">
    ```xml theme={null}
    <source>
      <postgresql>
          <host>postgresql-hostname</hoat>
          <port>5432</port>
          <user>clickhouse</user>
          <password>qwerty</password>
          <db>db_name</db>
          <table>table_name</table>
          <where>id=10</where>
          <invalidate_query>SQL_QUERY</invalidate_query>
          <query>SELECT id, value_1, value_2 FROM db_name.table_name</query>
      </postgresql>
    </source>
    ```
  </Tab>
</Tabs>

<br />

Campos de configuración:

| Configuración                      | Descripción                                                                                                                                                                                                                                  |
| ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `host`                             | El host del servidor PostgreSQL. Puede especificarlo para todas las réplicas o para cada una por separado (dentro de `<replica>`).                                                                                                           |
| `port`                             | El puerto del servidor PostgreSQL. Puede especificarlo para todas las réplicas o para cada una por separado (dentro de `<replica>`).                                                                                                         |
| `user`                             | Nombre del usuario de PostgreSQL. Puede especificarlo para todas las réplicas o para cada una por separado (dentro de `<replica>`).                                                                                                          |
| `password`                         | Contraseña del usuario de PostgreSQL. Puede especificarlo para todas las réplicas o para cada una por separado (dentro de `<replica>`).                                                                                                      |
| `replica`                          | Sección de configuración de réplicas. Puede haber varias secciones.                                                                                                                                                                          |
| `replica/host`                     | El host de PostgreSQL.                                                                                                                                                                                                                       |
| `replica/port`                     | El puerto de PostgreSQL.                                                                                                                                                                                                                     |
| `replica/priority`                 | La prioridad de la réplica. Al intentar conectarse, ClickHouse recorre las réplicas en orden de prioridad. Cuanto menor sea el número, mayor será la prioridad.                                                                              |
| `db`                               | Nombre de la base de datos.                                                                                                                                                                                                                  |
| `table`                            | Nombre de la tabla.                                                                                                                                                                                                                          |
| `where`                            | El criterio de selección. La sintaxis de las condiciones es la misma que la de la cláusula `WHERE` en PostgreSQL. Por ejemplo, `id > 10 AND id < 20`. Opcional.                                                                              |
| `invalidate_query`                 | Consulta para comprobar el estado del diccionario. Opcional. Lea más en la sección [Actualización de datos del diccionario mediante LIFETIME](/es/reference/statements/create/dictionary/lifetime).                                          |
| `background_reconnect`             | Vuelve a conectarse a la réplica en segundo plano si falla la conexión. Opcional.                                                                                                                                                            |
| `query`                            | La consulta personalizada. Opcional.                                                                                                                                                                                                         |
| `sslmode`                          | Modo TLS/SSL que se pasa a `libpq`: `disable`, `allow`, `prefer`, `require`, `verify-ca` o `verify-full`. Si no se establece, se aplica el valor predeterminado de `libpq`, `prefer`. Opcional.                                              |
| `sslrootcert_pem`                  | Contenido del certificado de CA con el que se verifica el certificado del servidor PostgreSQL. Opcional.                                                                                                                                     |
| `sslcert_pem`                      | Contenido del certificado del cliente, para la autenticación basada en certificados. Opcional.                                                                                                                                               |
| `sslkey_pem`                       | Contenido de la clave privada perteneciente a `sslcert_pem`. Opcional.                                                                                                                                                                       |
| `sslrootcert`, `sslcert`, `sslkey` | Las mismas credenciales como rutas a archivos en el servidor. Solo se permite para un diccionario definido en un archivo de configuración del servidor o mediante una colección con nombre definida allí; consulte a continuación. Opcional. |

<Note>
  Los campos `table` o `where` no pueden usarse junto con el campo `query`. Además, debe declararse uno de los campos `table` o `query`.
</Note>

<Note>
  `sslrootcert`, `sslcert` y `sslkey` indican archivos que el servidor abre con sus propios privilegios, por lo que solo se aceptan para un diccionario definido en un archivo de configuración del servidor o mediante una colección con nombre definida en él. En su lugar, un diccionario creado con una consulta `CREATE DICTIONARY` debe proporcionar el contenido en `sslrootcert_pem`, `sslcert_pem` y `sslkey_pem`. Estos valores se enmascaran en los logs y en las consultas `SHOW`, al igual que las contraseñas.
</Note>
