Outils pour utilisateurs

Outils du site


blog

Data - notes générales sur les données

SQL Sécurité

Voir :

  • SQLmap

Différents paradigmes : modèles

Modèle de données

Données structurées, semi structurées, non structurées

Non structuré

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://en.m.wikipedia.org/wiki/Lists_of_database_management_systems

https://en.m.wikipedia.org/wiki/List_of_databases_using_MVCC

https://github.com/gostor/awesome-go-storage#database

Clef valeur : Valkey (Redis), etcd, BoltDB / bbolt (embedded key/value database), TiKV (cncf.io) Voir : https://juicefs.com/docs/community/databases_for_metadata/

Ddistributed vector database : Milvus https://en.wikipedia.org/wiki/Milvus_(vector_database)

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

Prometheus

Scalable horizontalement

  • Vitess (Scalable. Reliable. MySQL-compatible. Cloud-native) (Voir http://cncf.io)
Multi modèle
Données semi structurées
Multi-model databases
OLTP vs OLAP
En bref
OLTP (OnLine Transaction Processing)
OLAP (OnLine Analytical Processing)
OLEP OnLine Event Processing

Event logs Event-Oriented Database

EventQL

Explication

Suivant l'activité de l'entreprise, les besoins d'exécution du métier peuvent imposer des contraintes techniques. Les différentes technologies de bases de données se répartissent en deux grandes familles suivant leurs missions principales.

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'autres technologies ont l'analyse de données au cœur de leurs préoccupations. Il s'agit de bases de données OLAP (OnLine Analytical Processing). Elles sont capables de traiter d'importants volumes de données rapidement afin de produire différents rapports.

Source : https://practicalprogramming.fr/snowflake

Technos / Serveurs / outils

transaction processing (OLTP) and analytical processing (OLAP) workloads.

Olap tools & servers :

  • ClickHouse (Par Yandex)
  • LucidDB
  • Langage R
  • Python Anaconda
  • Jasp
  • Jamovi
  • Palo OLAP Server
  • Pentaho BI
  • Mondrian
  • OBIEE (Oracle Business Intelligence Enterprise Edition)
  • JsHypercube

Voir : https://en.wikipedia.org/wiki/Comparison_of_OLAP_servers

ClickHouse https://m.youtube.com/watch?v=FsVrFbcyb84

OLAP - Data Lake vs Data Warehouse

Voir https://practicalprogramming.fr/snowflake

Le Data Warehouse base l'exploitation des données qu'il renferme sur un processus d'ETL (Extract, Tranform, Load) permettant de charger les données issues des différentes applications.

ETL

Voir :

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://en.m.wikipedia.org/wiki/Query_language

Serveurs

Voir : https://db-engines.com/en/ranking

  • Postgres (SQL & NoSQL)
  • MongoDB et FerretDB
  • CoucheDB et PouchDB
  • SQLite
  • Neo4j
  • TiDB (Horizontal Scalability - MySQL Compatible Syntax)
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 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 :

Outils DB

Migration schéma :

Backup :

  • Barman (Postgresql backup)

NoSQL

Requête sur des bases NoSQL http://b3d.bdpedia.fr/bddoc.html

Comparaison https://hackolade.com/help/NoSQLdatabasesJSONRESTAPIs.html

The CAP theorem states that any distributed database can only have a maximum of two of three desirable qualities: consistency, availability, and partition tolerance.

  • Consistency: All clients always have the same view of the data.
  • Availability: All clients can read from and write to the database at all times.
  • Partition tolerance: The database cluster can keep working even if communication between nodes breaks down.

Voir aussi : Propriétés ACID

Connecteurs

Client Multi bases

Voir :

  • 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'analytique (OLTP ou OLAP) ?

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'échelle horizontale (scalabilité) ?

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'appli via une couche d'abstraction tel que :

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:

Colonnes HDFS HBASE

HBase est un système de gestion de base de données non relationnelle orienté colonnes qui fonctionne sur HDFS

hdfs dfs -ls /
hbase hbck -details

Outils de visualisation de données

2025/03/24 15:06

Curl cookies trac

Voir aussi :

Enregistrer le cookie

curl -k --show-error --verbose -c cookies.txt https://trac.acme.fr/login --anyauth --user USER:PASSWD
curl -k --show-error --verbose -b cookies.txt https://trac.acme.fr/query |html2text |grep ^#
cookies.txt
# Netscape HTTP Cookie File
# http://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.

#HttpOnly_trac.acme.fr	FALSE	/	FALSE	0	trac_auth	ab2cf34d1b293f508218fdea4d5d2abe

Sur le serveur

sqlite3 trac/projet1/db/trac.db
.header ON
SELECT * FROM auth_cookie ORDER BY TIME DESC LIMIT 1;
cookie|name|ipnr|time
ab2cf34d1b293f508218fdea4d5d2abe|jibe|127.0.0.1|1444221567
DELETE FROM auth_cookie WHERE cookie='ab2cf34d1b293f508218fdea4d5d2abe';
curl -k -b cookies.txt https://trac.acme.fr/query 2>/dev/null |html2text |grep '^#' |awk '{print "\t<td>"$1"</td>\t<td>"$2"</td>"}' |sed -e 's/^/<tr>/' -e 's/$/<\/tr>/' -e '1i\<table>' |sed -e '$a</table>' |xmllint --format - |sed '1d' |sed -e 's%#\([0-9][0-9]*\)%<a href="https://trac.acme.fr/ticket/\1">\1</a>%'

Notes cookies

curl -I -c cookies.txt http://notre-dame-des-rencontres.com
 
curl -b cookies.txt 'http://www.notre-dame-des-rencontres.com/testcookie.php?passwd=Passw0rd&user=Pseudo&css=' -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' -H 'Accept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3' --compressed -H 'Referer: http://www.notre-dame-des-rencontres.com/?out=1' -H 'DNT: 1' -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'Sec-GPC: 1'
 
curl -b cookies.txt 'http://www.notre-dame-des-rencontres.com/site/securit.php?fgp=1ab3e259a81f5d20d98289aa9ab2764e&cook=1&passwd=Passw0rd&user=Pseudo' -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' -H 'Accept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3' --compressed -H 'Referer: http://www.notre-dame-des-rencontres.com/?out=1' -H 'DNT: 1' -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'Sec-GPC: 1'
 
curl -b cookies.txt 'http://www.notre-dame-des-rencontres.com/site/delogger.php' -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' -H 'Accept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3' --compressed -H 'DNT: 1' -H 'Connection: keep-alive' -H 'Referer: http://www.notre-dame-des-rencontres.com/?fgp=c3584c3ecbfccd0cc2b2d92a392d3b16' -H 'Upgrade-Insecure-Requests: 1' -H 'Sec-GPC: 1'
2025/03/24 15:06

Crypto - Découper ses clefs en plusieurs morceaux grâce au secret reparti

m of n

Découper une clef de chiffrement en plusieurs morceaux

Voir aussi:

Install

apt-get install libgfshare-bin

Découpage (split)

gfsplit -n 3 -m 5 plop.key

Découpe le ficher plop.key en 5 morcaux. Seulement 3 morcaux suffit pour recomposer la clef en entier

Réassemblage (combine)

gfcombine plop.key.186 plop.key.184 plop.key.007 -o plop.key
2025/03/24 15:06

Créer un patch - diff

Voir aussi :

  • JSON RFC 6902 patch

Source: https://docs.moodle.org/dev/How_to_create_a_patch

diff -Naur standard_moodle my_moodle > patch.txt

Avec git

The easiest way to create a patch for the last commit is

Créer un patch pour le dernier commit

git show > patch.txt

If you want to create a patch between 2 specific commits you can use git diff

git diff commitid1 commitid2 > patch.txt

Il existe aussi git format-patch pour pouvoir facilement envoyer un patch par mail

git format-patch -n
#git format-patch -1 <sha1> --stdout > <name>.patch

Autre

Défaire / inverser un patch (Undo patch)

interdiff -q file.patch /dev/null > reversed.patch
2025/03/24 15:06

Création d'un dépôt RedHat RPM pour Yum

Voir :

  • createrepo_c

Voir aussi pour Debian :

Conf dépots

yum install createrepo repoview
mkdir -p /var/www/repo
#mkdir -p /var/www/repo/SRPMS
cp *.rpm /var/www/repo/
createrepo /var/www/repo/el7
repoview /var/www/repo/el7
chown -R apache:apache /var/www/repo

Conf Apache

/etc/httpd/conf.d/repo.conf

<VirtualHost *:81>
        DocumentRoot /var/www/repo/el7/
 
<Directory /var/www/repo/el7/>
        Options +Indexes
</Directory>
 
<Location />
        Allow from all
</Location>
 
</VirtualHost>

/etc/httpd/conf/httpd.conf

Listen 80
Listen 81
apache -t && systemctl reload httpd

Conf client

/etc/yum.repos.d/mon.repo

[interne]
name=Dépôt interne
enabled=1
gpgcheck=0
baseurl=http://localhost:81/
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

Pour tester la conf du client

yum clean all
yum list
2025/03/24 15:06
blog.txt · Dernière modification : de 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki