Как подключить новый источник метаданных
Как протестировать подключение к источнику метаданных
Удаление источника метаданных
Как отредактировать параметы подключения к источнику метаданных
Как добавить новый процесс загрузки данных для источника
Как запустить процесс загрузки данных вручную
Как создать дополнительный атрибут
```python
tasks.append(PostgresOperator(
task_id = f'task_0',
postgres_conn_id = 'postgres_dwh_conn_id',
sql = 'SELECT 1', # dummy query
inlets = {
'tables1': ['sql_lineage_inlets_outlets_src.sql_lineage_inlets_outlets_src.public.client',],
'tables2': [
'sql_lineage_inlets_outlets_src.sql_lineage_inlets_outlets_src.public.client',
'sql_lineage_inlets_outlets_src.sql_lineage_inlets_outlets_src.public.order_',
],
},
outlets = {
'tables1': ['sql_lineage_inlets_outlets_dst.sql_lineage_inlets_outlets_dst.public.client',],
'tables2': [
'sql_lineage_inlets_outlets_dst.sql_lineage_inlets_outlets_dst.public.order_',
],
}
))
```
```python
from airflow.providers.postgres.operators.postgres import PostgresOperator as PostgresOperator_
class PostgresOperator(PostgresOperator_):
template_fields = [
*PostgresOperator_.template_fields,
'adc_service_name',
'adc_host_port',
'adc_database_name',
]
def __init__(
self,
*,
adc_service_name: str = 'sql_lineage_adc',
adc_host_port: str = 'postgres-dwh:5432',
adc_database_name: str = 'sql_lineage_adc',
**kwargs):
super().__init__(**kwargs)
self.adc_service_name = adc_service_name
self.adc_host_port = adc_host_port
self.adc_database_name = adc_database_name
```
```yml
version: "3.9"
services:
...
ingestion:
...
volumes:
...
- "${PWD}/adc_share:${ADC_SHARE_DIR}"
# либо явно задать директории "<директория_на_хосте>:<директория_в_контейнере_ingestion>"
...
```
```sql
CREATE READABLE EXTERNAL TABLE pxf_sensors_postgresql.temperature (
...
)
LOCATION ('pxf://pxf.temperature?PROFILE=JDBC&JDBC_DRIVER=org.postgresql.Driver&DB_URL=jdbc:postgresql://<host>:<port>/<dbname>&USER=<user>&PASS=<password>')
FORMAT 'CUSTOM' (FORMATTER='pxfwritable_import');
```
```sql
CREATE READABLE EXTERNAL TABLE pxf_sensors_postgresql.sensor (
...
)
LOCATION ('pxf://pxf.sensor?PROFILE=JDBC&SERVER=sensors_postgresql')
FORMAT 'CUSTOM' (FORMATTER='pxfwritable_import');
```
```bash
/adc_share
/greenplum_pxf # это наименование сервиса баз данных с Greenplum + PXF
/pxf_base
/servers
/... # здесь содержимое директории "${PXF_BASE}/servers/"
/postgresql_adc
/jdbc-site.xml
```
```xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property>
<name>jdbc.driver</name>
<value>org.postgresql.Driver</value>
<description>Class name of the JDBC driver (e.g. org.postgresql.Driver)</description>
</property>
<property>
<name>jdbc.url</name>
<value>jdbc:postgresql://HOST:PORT/DBNAME</value>
<description>The URL that the JDBC driver can use to connect to the database (e.g. jdbc:postgresql://localhost/postgres)</description>
</property>
</configuration>
```