Я пишу DataQualityOperator в DAG. Следует проверить, есть ли данные в таблице Redshift. Для этого я хотел бы проверить, содержит ли основной столбец нулевые значения. С sql я нашел имя столбца Первичный ключ. Как я могу проверить, содержит ли он нулевые значения? (Что означает, что таблица не годится в моем случае).
class DataQualityOperator(BaseOperator):
check_template = """
SELECT a.attname
FROM pg_index i
JOIN pg_attribute a ON a.attrelid = i.indrelid
AND a.attnum = ANY(i.indkey)
WHERE i.indrelid = 'tablename'::regclass
AND i.indisprimary;
"""
def __init__ (self,redshift_conn_id = "", target_table="", *args, **kwargs):
super(...)
def execute(self, context):
self.log.info(f'DataQualityOperator processing {target_table}')
redshift = PostgresHook(postgres_conn_id=self.redshift_conn_id)
check_records = redshift.get_records(check_template.format(self.target_table))
Как этого добиться? Спасибо за помощь.