El origen de datos de AnalyticDB for PostgreSQL ofrece capacidades de lectura y escritura bidireccionales mediante Data Integration.
Limitaciones
La sincronización por lotes permite leer datos desde una vista.
Versiones compatibles
El conector es compatible con las versiones hasta la 7.0, incluida esta última.
Tipos de datos compatibles
Lectura por lotes
AnalyticDB for PostgreSQL Reader es compatible con la mayoría de los tipos de datos de AnalyticDB for PostgreSQL. Compruebe que sus tipos de datos sean compatibles antes de usarlos.
A continuación se muestran los tipos de datos compatibles para las lecturas por lotes.
|
Categoría |
Tipo de AnalyticDB for PostgreSQL |
|
Entero |
BIGINT, BIGSERIAL, INTEGER, SMALLINT, SERIAL y GEOMETRY |
|
Punto flotante |
DOUBLE, PRECISION, MONEY, NUMERIC y REAL |
|
Cadena |
VARCHAR, CHAR, TEXT, BIT e INET |
|
Fecha y hora |
DATE, TIME y TIMESTAMP |
|
Booleano |
BOOL |
|
Binario |
BYTEA |
Escritura por lotes
AnalyticDB for PostgreSQL Writer es compatible con la mayoría de los tipos de datos de AnalyticDB for PostgreSQL. Compruebe que sus tipos de datos sean compatibles antes de usarlos.
En la siguiente tabla se muestra la correspondencia entre los tipos de datos de DataWorks y los de AnalyticDB for PostgreSQL para las escrituras por lotes.
|
Tipo de datos de DataWorks |
Tipo de AnalyticDB for PostgreSQL |
|
LONG |
BIGINT, BIGSERIAL, INTEGER, SMALLINT y SERIAL |
|
DOUBLE |
DOUBLE, PRECISION, MONEY, NUMERIC y REAL |
|
STRING |
VARCHAR, CHAR, TEXT, BIT, INET y GEOMETRY |
|
DATE |
DATE, TIME y TIMESTAMP |
|
BOOLEAN |
BOOL |
|
BYTES |
BYTEA |
Debe usar una conversión de tipo, como a_inet::varchar, para los tipos de datos MONEY, INET y BIT.
Agregar un origen de datos
Antes de desarrollar una tarea de sincronización en DataWorks, agregue el origen de datos necesario a DataWorks siguiendo las instrucciones de Data source configuration. Consulte las descripciones de parámetros en la consola de DataWorks para comprender el significado de cada parámetro al agregar un origen de datos.
Desarrollar una tarea de sincronización de datos
Para conocer el punto de entrada y el procedimiento de configuración de una tarea de sincronización, consulte las siguientes guías de configuración.
Sincronización por lotes de una sola tabla
Para consultar el procedimiento, consulte Configure a sync task using the Codeless UI y Configure a sync task using the Code Editor.
Si necesita la lista completa de parámetros y ejemplos de scripts para Code Editor, revise Appendix: Script samples and parameters.
Sincronización por lotes de una base de datos completa
Para consultar el procedimiento, consulte Configure a batch synchronization task for an entire database.
Apéndice: Ejemplos de scripts y parámetros
Configurar una tarea de sincronización por lotes con el editor de código
Si desea configurar una tarea de sincronización por lotes con el editor de código, defina los parámetros correspondientes en el script según los requisitos unificados de formato. Para obtener más información, consulte Script mode configuration. A continuación se describen los parámetros que debe configurar para los orígenes de datos cuando utiliza el editor de código.
Ejemplo de script de Reader
{
"type": "job",
"steps": [
{
"parameter": {
"datasource": "test_004",// The name of the data source.
"column": [// The columns in the source table.
"id",
"name",
"sex",
"salary",
"age"
],
"where": "id=1001",// The WHERE clause.
"splitPk": "id",// The shard key.
"table": "public.person"// The name of the source table.
},
"name": "Reader",
"category": "reader"
},
{
"parameter": {},
"name": "Writer",
"category": "writer"
}
],
"version": "2.0",// The version number.
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
},
"setting": {
"errorLimit": {// The error record count.
"record": ""
},
"speed": {
"concurrent": 6,// The number of concurrent threads.
"throttle": true,// Specifies whether to enable throttling. If you set this parameter to false, throttling is disabled and the mbps parameter does not take effect. If you set this parameter to true, throttling is enabled.
"mbps":"12"// The throttling rate in MB/s.
}
}
}
Parámetros de Reader
|
Parámetro |
Descripción |
Obligatorio |
Predeterminado |
|
datasource |
Nombre del origen de datos registrado en DataWorks. |
Sí |
Ninguna |
|
table |
Nombre de la tabla de origen. |
Sí |
Ninguna |
|
column |
Columnas que se van a sincronizar, especificadas como un arreglo JSON. De forma predeterminada, se sincronizan todas las columnas, lo cual se indica con [*].
|
Sí |
Ninguna |
|
splitPk |
Clave de fragmentación. Establezca splitPk con el nombre de una columna para habilitar la extracción paralela de datos mediante fragmentación.
|
No |
Ninguna |
|
where |
Cláusula WHERE que se usa para filtrar los datos extraídos. El lector construye una consulta SQL a partir de los parámetros column, table y where. Por ejemplo:
|
No |
Ninguna |
|
querySql (avanzado; no disponible en Codeless UI) |
Consulta SQL personalizada para filtrar datos. Cuando el parámetro Cuando configura el parámetro querySql, AnalyticDB for PostgreSQL Reader ignora los parámetros column, table y where. |
No |
Ninguna |
|
fetchSize |
Número de registros que se obtienen por lote desde la base de datos. Un valor mayor reduce los viajes de ida y vuelta por la red y mejora el rendimiento de la extracción. Nota
Un valor de fetchSize superior a 2048 puede provocar un error de memoria insuficiente (OOM) durante el proceso de sincronización de datos. |
No |
512 |
Ejemplo de script de Writer
{
"type": "job",
"steps": [
{
"parameter": {},
"name": "Reader",
"category": "reader"
},
{
"parameter": {
"postSql": [],// The post-execution SQL statement.
"datasource": "test_004",// The name of the data source.
"column": [// The columns in the destination table.
"id",
"name",
"sex",
"salary",
"age"
],
"table": "public.person",// The name of the destination table.
"preSql": []// The pre-execution SQL statement.
},
"name": "Writer",
"category": "writer"
}
],
"version": "2.0",// The version number.
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
},
"setting": {
"errorLimit": {// The error record count.
"record": ""
},
"speed": {
"throttle":true,// Specifies whether to enable throttling. If you set this parameter to false, throttling is disabled and the mbps parameter does not take effect. If you set this parameter to true, throttling is enabled.
"concurrent":6, // The number of concurrent threads.
"mbps":"12"// The throttling rate.
}
}
}
Parámetros de Writer
|
Parámetro |
Descripción |
Obligatorio |
Predeterminado |
|
datasource |
Nombre del origen de datos registrado en DataWorks. |
Sí |
Ninguna |
|
table |
Nombre de la tabla de destino. |
Sí |
Ninguna |
|
writeMode |
Modo de escritura. Valores válidos: insert, copy y upsert.
|
No |
insert |
|
conflictMode |
Si establece writeMode en upsert y se produce un conflicto de clave principal o de índice único al escribir datos en PostgreSQL, seleccione una de las siguientes políticas de resolución de conflictos:
Nota
La política de resolución de conflictos solo se configura en Code Editor. |
No |
replace |
|
column |
Columnas de destino donde se escribirán los datos, separadas por comas (,). Por ejemplo: |
Sí |
Ninguna |
|
preSql |
Instrucción SQL que se ejecuta antes de iniciar la tarea de sincronización. Codeless UI admite una sola instrucción, mientras que Code Editor permite varias, por ejemplo, para limpiar datos antiguos. |
No |
Ninguna |
|
postSql |
Instrucción SQL que se ejecuta después de completar la tarea de sincronización. Codeless UI admite una sola instrucción, pero Code Editor permite varias, por ejemplo, para agregar una marca de tiempo. |
No |
Ninguna |
|
batchSize |
Número de registros que se escriben por lote. Un valor mayor reduce los viajes de ida y vuelta por la red y mejora el rendimiento, aunque un valor excesivo puede provocar un error OOM. |
No |
1024 |