tech:data_-_notes_generales_sur_les_donnees
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| tech:data_-_notes_generales_sur_les_donnees [2025/11/28 16:30] – Jean-Baptiste | tech:data_-_notes_generales_sur_les_donnees [2026/06/26 17:36] (Version actuelle) – Jean-Baptiste | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | < | ||
| + | {{tag> | ||
| + | |||
| + | # Data - notes générales sur les données | ||
| + | |||
| + | Liste SQL DBMS : | ||
| + | * https:// | ||
| + | * https:// | ||
| + | |||
| + | Voir : | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | |||
| + | |||
| + | ## SQL Sécurité | ||
| + | |||
| + | Voir : | ||
| + | * SQLmap | ||
| + | |||
| + | |||
| + | ## Différents paradigmes : modèles | ||
| + | |||
| + | [Modèle de données](https:// | ||
| + | |||
| + | Données structurées, | ||
| + | * https:// | ||
| + | * https:// | ||
| + | |||
| + | Non structuré | ||
| + | * https:// | ||
| + | * https:// | ||
| + | |||
| + | |||
| + | Database management system provides mechanism for storage and retrieval of data. There are three main types of database management systems namely RDBMS (Relational Database management Systems), OLAP (Online Analytical Processing Systems) and NoSQL. | ||
| + | |||
| + | https:// | ||
| + | |||
| + | https:// | ||
| + | |||
| + | https:// | ||
| + | |||
| + | Clef valeur : Valkey (Redis), etcd, BoltDB / bbolt (embedded key/value database), TiKV (cncf.io) | ||
| + | Voir : https:// | ||
| + | |||
| + | Distributed vector database : Milvus https:// | ||
| + | Vector DB : ChromaDB, Milvus, PGVector | ||
| + | |||
| + | Db orientées documents : CoucheDB, MongoDB, TinyDB | ||
| + | |||
| + | base de données orientée graphe : Neo4j, OrientDB, TinkerPop (OLAP & OLTP) | ||
| + | |||
| + | Fichiers plats : CSV, JSON, YAML, XML, HDF5 | ||
| + | |||
| + | column-oriented database : ClickHouse, hbase (HDFS) | ||
| + | |||
| + | Semi-structured data : XML; HTML, JSON, YAML | ||
| + | |||
| + | |||
| + | Autres : LMDB Lightning Memory-Mapped Database : Base de données en mémoire et NoSQL | ||
| + | |||
| + | |||
| + | indépendamment de cela il existe des bases de données optimisées pour de la lecture : LDAP, etcd... | ||
| + | |||
| + | |||
| + | RDF / [Triplestore](https:// | ||
| + | |||
| + | Prometheus | ||
| + | |||
| + | |||
| + | Scalable horizontalement | ||
| + | * Vitess (Scalable. Reliable. MySQL-compatible. Cloud-native) (Voir http:// | ||
| + | |||
| + | |||
| + | |||
| + | ### Multi modèle | ||
| + | |||
| + | https:// | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ### Données semi structurées | ||
| + | |||
| + | https:// | ||
| + | Voir : | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | |||
| + | |||
| + | Serveurs : | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * < | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ### Multi-model databases | ||
| + | |||
| + | https:// | ||
| + | |||
| + | |||
| + | |||
| + | ### OLTP vs OLAP | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | #### En bref | ||
| + | |||
| + | #### OLTP (OnLine Transaction Processing) | ||
| + | |||
| + | [Traitement transactionnel en ligne](https:// | ||
| + | |||
| + | #### OLAP (OnLine Analytical Processing) | ||
| + | |||
| + | (Analyse multi-dimensionnelle) | ||
| + | |||
| + | Voir : | ||
| + | * [Traitement analytique en ligne](https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | |||
| + | #### OLEP OnLine Event Processing | ||
| + | |||
| + | Event logs | ||
| + | Event-Oriented Database | ||
| + | |||
| + | EventQL | ||
| + | |||
| + | #### Explication | ||
| + | |||
| + | Suivant l' | ||
| + | |||
| + | Les bases de données ayant vocation à stocker des données en temps réel. C'est le cas des bases de données MySQL ou MongoDB. On les catégorise comme bases de données **OLTP** (Online transaction processing). | ||
| + | |||
| + | D' | ||
| + | |||
| + | // Source : https:// | ||
| + | |||
| + | #### Technos / Serveurs / outils | ||
| + | |||
| + | transaction processing (OLTP) and analytical processing (OLAP) workloads. | ||
| + | |||
| + | Olap tools & servers : | ||
| + | * [OLAP PivotTable](https:// | ||
| + | * ClickHouse (Par Yandex) | ||
| + | * [Apache Kylin](https:// | ||
| + | * LucidDB | ||
| + | * Langage R | ||
| + | * Python Anaconda | ||
| + | * Jasp | ||
| + | * Jamovi | ||
| + | * Palo OLAP Server | ||
| + | * Pentaho BI | ||
| + | * Mondrian | ||
| + | * OBIEE (Oracle Business Intelligence Enterprise Edition) | ||
| + | * JsHypercube | ||
| + | |||
| + | Voir : https:// | ||
| + | |||
| + | ClickHouse | ||
| + | https:// | ||
| + | |||
| + | |||
| + | |||
| + | ### OLAP - Data Lake vs Data Warehouse | ||
| + | |||
| + | Voir | ||
| + | https:// | ||
| + | |||
| + | Le Data Warehouse base l' | ||
| + | |||
| + | #### ETL | ||
| + | |||
| + | Voir : | ||
| + | * https:// | ||
| + | |||
| + | |||
| + | Outils : | ||
| + | * Airbyte | ||
| + | * Apache NiFi | ||
| + | * Apache Camel | ||
| + | * Jaspersoft ETL | ||
| + | * Apache Kafka | ||
| + | * Apache Airflow | ||
| + | * CloverETL | ||
| + | * Scriptella | ||
| + | * Pentaho Kettle | ||
| + | * Talend Open Studio | ||
| + | * KETL | ||
| + | * HPCC Systems | ||
| + | * GeoKettle | ||
| + | * CloverETL | ||
| + | * Apatar | ||
| + | * Cloudera | ||
| + | * BIRT | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ## Langages | ||
| + | |||
| + | https:// | ||
| + | |||
| + | * SQL | ||
| + | * PartiQL | ||
| + | * OQL | ||
| + | * SPARQL https:// | ||
| + | * RDF query language | ||
| + | * XQuery | ||
| + | * XPath | ||
| + | * XSLT | ||
| + | * GraphQL (voir https:// | ||
| + | * AQL (ArangoDB Query Language) | ||
| + | * ReQL (RethinkDB) | ||
| + | * Spark_SQL (Spark) | ||
| + | * N1QL (CouchBase) | ||
| + | * [MDX](https:// | ||
| + | * < | ||
| + | * Gremlin (Neo4j, Orientdb, TinkerPop) | ||
| + | * JMESPath is a query language for JSON | ||
| + | * PromQL (Prometheus) | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ## Serveurs | ||
| + | |||
| + | Voir : https:// | ||
| + | |||
| + | * Postgres (SQL & NoSQL) | ||
| + | * MongoDB et [FerretDB](https:// | ||
| + | * CoucheDB et [PouchDB](https:// | ||
| + | * SQLite | ||
| + | * Neo4j | ||
| + | * [TiDB](https:// | ||
| + | |||
| + | |||
| + | ### Config | ||
| + | |||
| + | Sur la plupart des bases de données comme Redis / Valkey, MongoDB, RabbitMQ, CouchBase, Kafka désactiver les Transparent Huge Pages il est recommandé de désactiver | ||
| + | **transparent_hugepages_thp [[memoire_linux|Transparent HugePages THP]]** | ||
| + | |||
| + | Parametre Kernel : net.ipv4.ip_local_port_range | ||
| + | Valeur attendue : Min 9000 Max 65500 | ||
| + | Valeur constatée : Min 32768 Max 65535 | ||
| + | |||
| + | CFQ : deadline | ||
| + | |||
| + | |||
| + | ### Proxy DB / Pooler | ||
| + | |||
| + | Peut être une solution pour faire du sharding | ||
| + | |||
| + | Voir : | ||
| + | * ProxySQL | ||
| + | * pgBouncer | ||
| + | * [PL/ | ||
| + | |||
| + | |||
| + | ## Outils DB | ||
| + | |||
| + | Migration schéma : | ||
| + | * < | ||
| + | |||
| + | Backup : | ||
| + | * Barman (Postgresql backup) | ||
| + | |||
| + | |||
| + | ## NoSQL | ||
| + | |||
| + | Requête sur des bases NoSQL | ||
| + | http:// | ||
| + | |||
| + | Comparaison | ||
| + | https:// | ||
| + | |||
| + | The CAP theorem states that any distributed database can only have a maximum of two of three desirable qualities: consistency, | ||
| + | |||
| + | * Consistency: | ||
| + | * Availability: | ||
| + | * Partition tolerance: The database cluster can keep working even if communication between nodes breaks down. | ||
| + | |||
| + | |||
| + | Voir aussi : [Propriétés ACID](https:// | ||
| + | |||
| + | |||
| + | ## Connecteurs | ||
| + | |||
| + | Voir : https:// | ||
| + | |||
| + | * ODBC | ||
| + | * JDBC | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ## Client Multi bases | ||
| + | |||
| + | Voir : | ||
| + | * [DBeaver](https:// | ||
| + | * isql / iusql (via ODBC) | ||
| + | * Adminer | ||
| + | |||
| + | ### Adminer | ||
| + | |||
| + | Adminer est compatible : | ||
| + | * MySQL / MariaDB | ||
| + | * PostgreSQL | ||
| + | * SQLite | ||
| + | * MS SQL | ||
| + | * Oracle | ||
| + | * Elasticsearch | ||
| + | * MongoDB, SimpleDB (plugin) | ||
| + | * Firebird (plugin) | ||
| + | * ClickHouse (plugin) | ||
| + | |||
| + | |||
| + | ## Question - besoin | ||
| + | |||
| + | Pour quelle finalité : pour du traitement ou pour de l' | ||
| + | |||
| + | Les données sont-elles déjà formatées ? | ||
| + | * Si oui quel format | ||
| + | * Sont-elle structurées - semi structurées ou non structurées ? | ||
| + | |||
| + | Quelle quantité de données ? | ||
| + | |||
| + | Quels IO ? | ||
| + | |||
| + | Besoin de mise à l' | ||
| + | |||
| + | Besoin par rapport au théorème CAP (Théorème de Brewer) ? | ||
| + | * Besoin des propriétés ACID ? | ||
| + | * Besoin haute disponibilité ? | ||
| + | |||
| + | Les données doivent-elle être présentées à l' | ||
| + | * [ORM - Mapping objet-relationnel](https:// | ||
| + | * [Data Mapper](https:// | ||
| + | * https:// | ||
| + | * Object-Document Mapper (ODM) (ex mincePy) | ||
| + | * [DAL - Database Abstraction Layer](https:// | ||
| + | * Connecteur ODBC, JDBC, API Test | ||
| + | |||
| + | |||
| + | Quels sont les besoin en terme de persistance ? | ||
| + | * Est-ce qu'un In memory database peut convenir ? | ||
| + | |||
| + | Fait-il une gestion de version (MVCC) ? | ||
| + | |||
| + | Est-ce plus pour de la lecture ou lecture / écriture ? | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ## Autres | ||
| + | |||
| + | |||
| + | Meta DB | ||
| + | * Virtuoso Universal Server | ||
| + | * DBeaver | ||
| + | |||
| + | |||
| + | Autres: | ||
| + | * https:// | ||
| + | |||
| + | |||
| + | ### Colonnes HDFS HBASE | ||
| + | |||
| + | HBase est un système de gestion de base de données non relationnelle orienté colonnes qui fonctionne sur HDFS | ||
| + | |||
| + | ~~~bash | ||
| + | hdfs dfs -ls / | ||
| + | hbase hbck -details | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | ## Outils de visualisation de données | ||
| + | |||
| + | * [ParaView](https:// | ||
| + | |||
| + | |||
