## 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

## Arquitetura Bi Entrada e Saída

## Arquitetura Programas
## Esquema de Comunicação BI

## 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