Dúvida de PostgreSQL
- Eu tenho uma base local
base_local
com a colunaid
- Eu tenho uma base remota num postgres
base_remota
com a colunaid
, que li rodando
base_remota <- dplyr::tbl(con, "base_remota")
Eu gostaria de fazer um anti_join(base_local, base_remota, "id")
, ou seja, tirar da minha base_local
os id
's que já estão na base_remota
.
Quando faço isso, no entanto, o que observo é:
novos <- dplyr::anti_join(base_local, base_remota, "id")
#> Error: `x` and `y` must share the same src, set `copy` = TRUE (may be slow).
No entanto, como minha base local é muito menor que a remota, queria fazer isso direto no sem precisar colocar copy = TRUE
, direto no postgres.
O jeito que pensei em fazer isso é 1) subir base_local
para o postgres, 2) ler base_local_remota
do postgres e 3) fazer o anti_join()
de lá para só então dar collect()
O que é melhor? copy=TRUE
ou o jeito que pensei? Existe uma terceira forma mais eficiente?
Obrigado!