A manipulação e migração de dados entre diferentes fontes é uma tarefa comum em diversos cenários de desenvolvimento de software e análise de dados. Uma situação típica é a necessidade de transferir dados de um arquivo Excel para um banco de dados SQL Server. Python oferece uma gama de ferramentas e bibliotecas poderosas para facilitar esse processo, como Pandas para manipulação de dados e SQLAlchemy para interagir com bancos de dados relacionais.
Neste artigo vamos explorar este processo : migrar dados de uma planilha do Excel para um banco de dados SQL utilizando Python. Isso é especialmente útil quando precisamos lidar com conjuntos de dados extensos e desejamos aproveitar a eficiência e a escalabilidade de um banco de dados relacional.
Antes de começarmos, certifique-se de que você tenha instalado os seguintes pacotes Python:
- Pandas: Para manipulação de dados em formato de DataFrame.
- SQLAlchemy: Uma biblioteca SQL toolkit e Object-Relational Mapping (ORM) para Python.
Para iniciar é necessário garantir que a tabela onde os dados do Excel serão inseridos já exista no banco de dados. A estrutura da tabela deve ser planejada de acordo com os dados que serão inseridos.
Antes de começarmos a migrar os dados, é necessário configurar as informações de conexão com o banco de dados SQL Server. As variáveis db_user
, db_password
, db_host
, db_port
e db_name
devem ser configuradas de acordo com suas próprias credenciais e configurações de servidor.
# Configurações do banco de dados
db_user = 'seu_usuario'
db_password = 'sua_senha'
db_host = 'seu_host'
db_port = 'sua_porta'
db_name = 'seu_banco_de_dados'
Em seguida, precisamos carregar os dados do arquivo Excel para um DataFrame Pandas. Utilizaremos a função read_excel
do Pandas para essa finalidade.
# Caminho para o arquivo Excel
excel_file = r'caminho_para_o_arquivo_excel.xlsx'
# Carregar dados do Excel para um DataFrame pandas
df = pd.read_excel(excel_file)
Agora que temos os dados em um DataFrame, podemos usá-lo para escrever os dados em uma tabela no banco de dados SQL Server. Primeiro, precisamos criar uma conexão com o banco de dados usando SQLAlchemy.
from sqlalchemy import create_engine
# Conexão com o banco de dados
engine = create_engine(f'mssql+pyodbc://{db_user}:{db_password}@{db_host}:{db_port}/{db_name}?driver=ODBC+Driver+17+for+SQL+Server')
Finalmente, podemos usar o método to_sql
do Pandas para escrever os dados do DataFrame na tabela do banco de dados.
# Nome da tabela no banco de dados
table_name = 'nome_da_tabela'
# Escrever os dados do DataFrame no banco de dados
df.to_sql(table_name, con=engine, if_exists='replace', index=False)
print("Dados migrados com sucesso!")
Seja o primeiro a comentar