У меня есть ненадежный поток данных, который напрямую передается в базу данных postgres.
Поток в основном включает заданный набор имен столбцов, но в редких случаях может включать столбцы, которые не были определены ранее, что означает, что в этих редких случаях вставка в postgres прерывается.
Я ищу решение для вставки столбцов из фида при удалении любых столбцов, вызванных неопределенными именами столбцов.
Одним очевидным простым решением является ведение списка допустимых столбцов и удаление любых столбцов румян перед вставкой. И это сработает, но я надеюсь избежать этого, так как фид имеет очень жесткие параметры тайм-аута, и чем больше я изменяю данные перед отправкой в базу данных, тем больше я рискую тайм-аутом. В настоящее время существует очень простой фрагмент Python, который создает команды вставки с данными как есть без какого-либо разбора:
cursor.execute('INSERT INTO {} ({}) VALUES ({});'.format(
my_table_name,
", ".join(columns),
", ".join(data)
))
Мой вопрос: есть ли способ сделать это на лету на стороне postgres? Ака удалить данные для столбцов, которые ранее не были определены, вставляя остальные на лету?
Я видел похожую проблему здесь но, насколько я могу судить, это решение не работает для postgres. Если такого решения не существует, это по-прежнему полезная информация, и я могу вернуться к предварительному анализу данных, где это возможно.
Заранее спасибо!