## BigData ### Big Data: Refere-se a conjuntos de dados extremamente grandes e complexos que exigem soluções especiais para processamento e análise eficientes. Isso inclui a coleta, armazenamento, processamento, análise e visualização de grandes volumes de dados. ### Baixa Latência: Indica um curto período de tempo entre o envio de uma solicitação e a recepção de uma resposta. Em contextos de Big Data, a baixa latência é crucial para garantir que as consultas e operações sobre grandes conjuntos de dados sejam realizadas rapidamente. ### Adaptabilidade: Refere-se à capacidade de um sistema ou arquitetura de se ajustar e responder de forma eficaz a mudanças nas condições ou nos requisitos do ambiente. Isso pode incluir a capacidade de lidar com variações na carga de trabalho, mudanças nos padrões de dados, falhas de hardware, entre outros. ### Escalabilidade: Relaciona-se com a capacidade de um sistema ou arquitetura de lidar com o aumento da carga de trabalho ou de dados sem sacrificar o desempenho. Em contextos de Big Data, a escalabilidade é fundamental para lidar com grandes volumes de dados e garantir que o sistema possa crescer conforme necessário. ### Resiliência: Refere-se à capacidade de um sistema de se recuperar de falhas ou interrupções de forma rápida e eficiente, mantendo a continuidade das operações. Isso é importante em ambientes de Big Data, onde a disponibilidade contínua dos dados e dos serviços é essencial. ### Processamento em Tempo Real: Indica a capacidade de processar e analisar dados à medida que eles são gerados, em vez de esperar por lotes de dados para análise posterior. Isso é essencial para aplicações que exigem respostas imediatas com base em dados em constante fluxo. ### Arquitetura Distribuída: Refere-se a uma abordagem de design onde o processamento e armazenamento de dados são distribuídos entre vários nós ou servidores em uma rede. Isso permite escalabilidade, redundância e tolerância a falhas em sistemas de Big Data. ### Paralelismo: Indica a capacidade de executar várias operações simultaneamente para melhorar o desempenho e a eficiência do processamento de dados. Isso é fundamental para lidar com grandes volumes de dados de forma rápida e eficaz. ## 5 Vs Big Data - Variedade, volume, veracidade, valor e velocidade são os “5 Vs” do Big Data ### Veracidade da Infromação ### Precisão: A informação precisa ser precisa e livre de erros ou distorções. Isso significa que os dados devem refletir com precisão a realidade ou o fenômeno que estão tentando representar. Erros nos dados podem levar a interpretações incorretas e decisões equivocadas. ### Credibilidade: A credibilidade está relacionada à confiabilidade da fonte da informação. Dados provenientes de fontes confiáveis ​​são mais propensos a serem verdadeiros e precisos. Avaliar a credibilidade da fonte é essencial para determinar a veracidade dos dados. ### Integridade: A integridade dos dados refere-se à completude e à exatidão dos dados. Isso envolve garantir que os dados não foram corrompidos, perdidos ou modificados de forma não autorizada. A integridade dos dados é crucial para garantir que as informações sejam confiáveis e não tenham sido adulteradas. ### Consistência: Os dados devem ser consistentes ao longo do tempo e em diferentes fontes. Inconsistências nos dados podem indicar problemas de qualidade ou conflitos entre fontes de informação. Garantir a consistência dos dados é fundamental para manter a veracidade das informações. ### Transparência: A transparência refere-se à disponibilidade de informações sobre a origem, o processo de coleta e manipulação dos dados. Uma boa transparência permite que os usuários compreendam como os dados foram gerados e avaliem sua confiabilidade. ### Atualidade: A atualidade dos dados é importante para garantir que as informações refletem a situação mais recente. Informações desatualizadas podem levar a decisões incorretas ou incompletas. Portanto, é fundamental garantir que os dados sejam atualizados regularmente. ## Conceitos Acid e Base ## ACID _ > Atomicidade, Conscitência, Isolamento e Durabilidade. - sequencial (busca ou não) - Acid -> transações tudo ou nada commit ou rollback. - conscitencia -> transações se mantem em estado de gracação válido. - isolamaneto transações simultaneas não interferem nos dados uma das outras - durabilidade -> uma vez que as transações são permantentes. ## Base -> Nosql ### Armazenamento de Dados - Base vs Acid - Basically available, soft state, events-conciestency - Base _ sempre dispoível, pode mudar dados automaticamente, e muista das vezes ficarem diferentes os dados . - soft state _ O Estado do banco pode mudar ao longo do tempo - Consistencia eventual _ Eventialmente todos os nós do banco serão atualizados e terão memsa versão. - Sempre os database estará diponível - pode adicionar novos livros sem precisar de uma nova organização - Se esperar um pouco tudo estará nos locais corretos - Alta disponibilidade, escaliabidade, conscientência eventual. Arquitetura BigData ![image](https://hackmd.io/_uploads/r1JuNm8Ra.png) ## Arquitetura Bi Entrada e Saída ![image](https://hackmd.io/_uploads/SyiC978CT.png) ## Arquitetura Programas ## Esquema de Comunicação BI ![image](https://hackmd.io/_uploads/H1H3GV80a.png) ## HackMd Solução Importando os dados de uma planilha para o Pymongo ## systema.py ```cmd= import pandas as pd from pymongo import MongoClient try: client = MongoClient('localhost', 27017) db = client['databaseum'] collection = db['vendas'] print("Conectado com sucesso!") caminho_planilha = 'c:/users/edson/aulapython/projetoum.xlsx' dados_planilha = pd.read_excel(caminho_planilha) for _, row in dados_planilha.iterrows(): data_dict = row.to_dict() collection.insert_one(data_dict) print("Dados inseridos no MongoDB com sucesso!") except Exception as e: print ("Error :" , e) ``` ## Importando os Dados de uma planilha para SQllite3 ## sistemasql.py ```cmd= import pandas as pd import sqlite3 def excel_to_sqlite(excel_file, db_file, table_name): dados_planilha = pd.read_excel(excel_file) conexao = sqlite3.connect(db_file) cursor = conexao.cursor() dados_planilha.to_sql(table_name, conexao, if_exists='replace', index=False) # Confirmar as alterações e fechar a conexão conexao.commit() conexao.close() if __name__ == "__main__": # Nome do arquivo Excel caminho_planilha = 'c:/users/edson/aulapython/projetoum.xlsx' # Nome do banco de dados SQLite db_file = 'dados.db' # Nome da tabela no banco de dados SQLite table_name = 'dados_excel' # Converter Excel para SQLite excel_to_sqlite(caminho_planilha, db_file, table_name) print("Dados do Excel gravados no banco de dados SQLite com sucesso!") ``` ## sudo docker pull cassandra:latest