Blaze のOdoを使用して postgres DB にデータフレームを保存するときに、重複行を無視するにはどうすればよいですか?
たとえば、次のように最初の 3 行を保存します。
>>> odo(df[:3], 'postgresql:///my_db::my_table')
my_table主キーとして列IDを持ちます。さらにいくつか追加する場合、今回は前の最後の行を含めて、その行をスキップして、それを取得する代わりに他の行を追加しIntegrityErrorます。
>>> odo(df[2:5], 'postgresql:///my_db::my_table')
IntegrityError: (psycopg2.IntegrityError) duplicate key value violates unique constraint ...
どうやってやるの?IDDB に何百万もの行がある場合、DB から値をロードして重複をチェックするのはコストがかかるように思えます。より良い代替手段はありますか?このようなもの:
INSERT...ON DUPLICATE KEY IGNORE
ブレイズ: 0.8.3、Postgres: 9.4.4、Psycopg2: 2.6.1