Consulta Nomes em uma Base de Dados DuckDB
Source:R/utils_com_central.R
consulta_nome_em_central.RdRealiza uma consulta a uma tabela de nomes em um banco de dados DuckDB, retornando todas as colunas para os nomes que correspondem à lista de entrada.
Arguments
- nomes
Um vetor de caracteres (character vector) contendo os nomes ou hashes a serem consultados.
- mestre
Uma string com o caminho para o diretório do banco de dados DuckDB (arquivo `.duckdb`).
- usar_hash
Lógico. Se
TRUE(padrão), a consulta será feita na coluna'nome_original_hash'. SeFALSE, a consulta será feita na coluna'nome_original'.
Value
Um data.frame contendo os resultados da consulta. Se nenhum
nome for encontrado, retorna um data.frame com zero linhas e as
colunas da tabela nomes_limpos.
Details
A função se conecta a um banco de dados DuckDB especificado pelo caminho em `mestre`. A consulta é otimizada para buscar múltiplos nomes de uma vez, gerando uma instrução SQL com parâmetros para evitar injeção de SQL.
O parâmetro `usar_hash` permite escolher a coluna para a busca:
Se
TRUE(padrão), a busca é feita na coluna'nome_original_hash'. Isso é ideal se os nomes na tabela estão armazenados como hashes (ex: SHA-256), pois pode ser mais rápido e seguro para comparações exatas.Se
FALSE, a busca é feita na coluna'nome_original', que deve conter os nomes em formato de texto.
A função gerencia automaticamente a conexão com o banco de dados, garantindo que ela seja fechada ao final da execução, mesmo que ocorra um erro.
Examples
if (FALSE) { # \dontrun{
# Exemplo de uso com hash (padrão)
# Suponha que 'caminho/para/meu_banco.duckdb' existe e tem a tabela 'nomes_limpos'
# com uma coluna 'nome_original_hash'.
hashes_para_buscar <- c("a1b2c3...", "d4e5f6...")
resultados_hash <- consulta_nome_em_central(
nomes = hashes_para_buscar,
mestre = "caminho/para/meu_banco.duckdb"
)
# Exemplo de uso com texto
# Suponha que a tabela 'nomes_limpos' também tem uma coluna 'nome_original'.
nomes_para_buscar <- c("João da Silva", "Maria Oliveira")
resultados_texto <- consulta_nome_em_central(
nomes = nomes_para_buscar,
mestre = "caminho/para/meu_banco.duckdb",
usar_hash = FALSE
)
} # }