
Ciao, Habr! Probabilmente ognuno di noi ha un file in cui conserva qualcosa di utile e interessante. Alcuni link a articoli, libri, repository, e manuali. Possono essere segnalibri nel browser o semplicemente schede aperte lasciate per dopo. Col tempo tutto ciò si accumula, i link smettono di funzionare e gran parte del materiale diventa obsoleto.
E se condividessi questa risorsa con la comunità e pubblicassi questo file su GitHub? Allora i tuoi sforzi potrebbero essere utili a qualcun altro, e la manutenzione della sua attualità potrebbe avvenire collettivamente, accettando aggiornamenti da chiunque desideri tramite i tradizionali PR. Questo è proprio lo scopo del progetto. . È tra i primi 10 repository di GitHub, ha 138K stelle, e il link al tuo lavoro potrebbe trovarsi direttamente nel suo README principale, attirando un enorme pubblico verso le tue creazioni. Certo, dovrai impegnarti un po'. Vorrei condividere con te la mia esperienza in questo ambito.
Mi chiamo Maxim Gramin. Presso KROK mi occupo di sviluppo Java e ricerche nel campo dei database. In questo post ti parlerò di cosa siano le Awesome Lists e di come creare il tuo vero e proprio repository awesome.
Cosa sono le Awesome Lists
Quando devo affrontare una nuova tecnologia o un linguaggio di programmazione, la prima cosa che faccio è andare qui — trovo la sezione giusta, e al suo interno le liste pertinenti. E a giudicare dal numero di stelle e dalla loro continua crescita, non sono l'unico a farlo.

In realtà, si tratta di un semplice readme.md, che vive in una directory separata , occupando così l'ottavo posto tra tutti i repository di GitHub e contiene link ad altre liste dedicate a temi specifici. Ad esempio, nella sezione Linguaggi di Programmazione, si possono trovare le liste Awesome Python e Awesome Go, mentre nello Sviluppo Front-End ci sono una miriade di risorse per la WEB development. E naturalmente c'è la sezione (ci torneremo più tardi). E sì, tutto questo non si limita solo a temi tecnici. Ad esempio, nelle sezioni Intrattenimento e Gaming si può trovare molto di interessante (personalmente sono rimasto colpito da ).
). La caratteristica principale è che tutte queste liste non sono curate personalmente dall'autore, ma dalla comunità e sono redatte secondo un manifesto molto specifico e rigoroso . Ogni lista è una comunità di specialisti a sé stante, vive di vita propria ed è aperta ai tuoi pull request, che la miglioreranno ulteriormente. Inoltre, chiunque lo desideri può creare una propria lista se un tema non è stato ancora trattato.
L'ideatore e coordinatore di tutto questo è il leggendario Sindre Sorhus, , autore di oltre , ed è lui a ricevere i tuoi PR.

Come entrare in una awesome-list
Se non hai trovato la lista giusta per l'argomento che ti interessa, questo è il primo segnale che devi crearla tu stesso!
Ti parlerò del mio progetto — Di progetto in progetto mi trovo a lavorare con diversi database, e quindi ho creato un file in cui raccolgo strumenti utili per lavorarci, vari migratori di database, IDE, pannelli di amministrazione, strumenti di monitoraggio e tanto altro. Strumenti che ho già utilizzato o che prevedo di utilizzare. Ho condiviso questo file con i miei colleghi in KROK e oltre. Questo è stato utile e interessante per molti. Alla fine, ho desiderato una maggiore visibilità quando ho notato che nella sezione Databases non c'era affatto una lista su questo tema. Così ho deciso di aggiungere la mia.
Cosa serve per questo?
- Registriamo un normale repository GitHub con un nome del tipo awesome-qualcosa. Nel mio caso, era awesome-database-tools
- Portiamo la nostra lista al formato awesome, per questo ci aiuterà , che genererà tutti i file necessari nel formato richiesto
- Impostiamo un vero CI. e travis ci aiuteranno a controllare della nostra lista
- Aspettiamo 30 giorni
- Facciamo review di almeno 2 PR di altre persone
- E infine faccio un PR nel repository principale, dove aggiungo il link al mio repository. Qui bisogna leggere attentamente tutto e seguire attentamente i numerosi requisiti per la nuova lista e per il PR stesso.
Il mio primo tentativo

Ma è passato un po' di tempo, ho raccolto ancora più materiale, ho lavorato sugli errori e ho osato un .
Ma ho dimenticato una cosa molto importante, di cui mi hanno fatto gentilmente notare:

Non ero molto attento e non ho aggiunto l'unicorno come segno di conferma che tutti i requisiti sono stati soddisfatti.

Poi è passato un po' di tempo, alcune correzioni suggerite e infine è arrivato il tanto atteso , che il mio PR era stato accettato.
Così sono diventato l'autore della mia prima lista, e ho iniziato a ricevere della comunità per aggiungere nuovi strumenti. E molti di essi sono già stati inclusi in . Se non hai voglia di seguire il link,
ecco una raccolta attuale al momento della pubblicazione del post
Awesome Database Tools
Elenco di strumenti per database guidato dalla comunità
Qui raccoglieremo informazioni su strumenti utili e sperimentali che semplificano il lavoro con i database per DBA, DevOps, Sviluppatori e comuni mortali.
Sentiti libero di aggiungere informazioni sui tuoi strumenti di db o sui tuoi strumenti di db di terze parti preferiti.
Contenuti
IDE
- — Strumento admin multifunzionale per gestione, controllo e sviluppo di database.
- — Aqua Data Studio è un software di produttività per Sviluppatori di Database, DBA e Analisti.
- — Strumento di gestione multipla per database con supporto per oltre 20 database.
- — IDE multipiattaforma per Database e SQL di JetBrains.
- — Gestore di database universale gratuito e client SQL.
- — IDE universale per sviluppo, gestione e amministrazione di database MySQL e MariaDB.
- — IDE potente per la gestione e amministrazione di Oracle.
- — Strumento GUI per gestire e sviluppare database e oggetti.
- — Ambiente di sviluppo integrato potente per sviluppo, gestione, amministrazione, analisi dati e reporting per SQL Server.
- — IDE moderno (framework JavaScript/Electron), open source per MongoDB. Ha funzioni per supportare lo sviluppo, l'amministrazione e l'ottimizzazione delle prestazioni su database MongoDB.
- — Strumento GUI completo per Firebird e InterBase.
- — Un client leggero per gestire MySQL, MSSQL e PostgreSQL, scritto in Delphi.
- — MySQL Workbench è uno strumento visuale unificato per architetti di database, sviluppatori e DBA.
- — Un strumento di sviluppo database che consente di connettersi simultaneamente a database MySQL, MariaDB, SQL Server, Oracle, PostgreSQL e SQLite da un'unica applicazione.
- — Oracle SQL Developer è un ambiente di sviluppo integrato gratuito che semplifica lo sviluppo e la gestione del database Oracle in implementazioni sia tradizionali che Cloud.
- — La piattaforma di amministrazione e sviluppo Open Source più popolare e ricca di funzionalità per PostgreSQL, il database Open Source più avanzato al mondo.
- — Supporto a lungo termine per pgAdmin3.
- — IDE specificamente destinato allo sviluppo di unità di programma archiviate per Database Oracle.
- — Strumento completo e potente per la gestione, amministrazione e sviluppo di database PostgreSQL.
- — Toad è la soluzione principale per database per sviluppatori, amministratori e analisti di dati. Gestisci cambiamenti complessi nei database con un unico strumento di gestione.
- — Strumento di sviluppo semplificato per MySQL e Postgres.
- — TOra è un IDE SQL open source per database Oracle, MySQL e PostgreSQL.
- — Crea, gestisci, interroga ed esplora gratuitamente i database Valentina DB, MySQL, MariaDB, PostgreSQL e SQLite.
GUI Manager/Client
- — Gestione database in un unico file PHP.
- — Strumento universale per database per sviluppatori, DBA e analisti.
- — Interfaccia di college ClickHouse Enterprise per eseguire query, monitorare la salute di ClickHouse e fare molte altre cose.
- — Accesso SQL diretto a tutti i tuoi dati, ovunque si trovino.
- — Strumento web per la gestione dei database.
- — Browser di database basato su web per PostgreSQL, scritto in Go e funziona su macOS, Linux e Windows.
- — Strumento di amministrazione database SQLite basato su web scritto in PHP con supporto per SQLite3 e SQLite2.
- — Un'interfaccia web per MySQL e MariaDB.
- — PSequel fornisce un'interfaccia pulita e semplice per eseguire rapidamente compiti comuni di PostgreSQL.
- — Editor SQL moderno e collaborativo per il tuo team.
- — Un client PostgreSQL moderno per Mac.
- — Robo 3T (ex Robomongo) è uno strumento di gestione MongoDB centrato sullo shell e multipiattaforma.
- — Sequel Pro è un'applicazione di gestione database Mac veloce e facile da usare per lavorare con database MySQL & MariaDB.
- — Uno strumento di gestione dei dati che consente di lavorare con SQL Server, Azure SQL DB e SQL DW da Windows, macOS e Linux.
- — Interfaccia grafica che supporta tutte le funzionalità di SQLite.
- — Editor SQL basato sul web eseguito nel tuo cloud privato.
- — Un gestore Postgres semplice e potente per macOS.
- — Client SQL grafico scritto in Java che consente di visualizzare la struttura di un database compatibile JDBC, esplorare i dati nelle tabelle, eseguire comandi SQL, ecc.
- — Gestione database per VSCode.
- — Il GUI MySQL più completo e facile da usare.
- — Editor SQL & Business Intelligence open source semplice per Clickhouse.
- — Strumento GUI moderno, nativo e amichevole per database relazionali: MySQL, PostgreSQL, SQLite & altro.
- — GUI Web di amministrazione PostgreSQL — utilizza i tuoi database PostgreSQL da qualsiasi luogo, con un'interfaccia web veloce e ricca di AJAX.
Strumenti CLI
- — Connettiti a un database per eseguire comandi SQL all'interno di IPython o IPython Notebook.
- — Un CLI per Redis con Autocompletamento e Evidenziazione della Sintassi.
- — Strumento di amministrazione simile a top per PostgreSQL.
- — Applicazione simile a top per il monitoraggio dell'attività del server PostgreSQL.
- — ‘top’ per PostgreSQL.
- — Pager per Postgres.
- — Oracle SQL Developer Command Line (SQLcl) è un'interfaccia a riga di comando gratuita per Oracle Database.
- — Interfaccia a riga di comando universale per PostgreSQL, MySQL, Oracle Database, SQLite3, Microsoft SQL Server, inclusi database NoSQL e non relazionali!
dbcli
- — AthenaCLI è uno strumento CLI per il servizio AWS Athena che offre completamento automatico e evidenziazione della sintassi.
- — CLI per database SQLite con completamento automatico e evidenziazione della sintassi.
- — Un client da riga di comando per SQL Server con completamento automatico e evidenziazione della sintassi.
- — Un client terminale per MySQL con completamento automatico e evidenziazione della sintassi.
- — CLI per Postgres con completamento automatico e evidenziazione della sintassi.
- — CLI per Vertica con completamento automatico e evidenziazione della sintassi.
Navigazione e visualizzazione dello schema DB
- — Strumento semplice e veloce per aiutarti a disegnare i diagrammi delle relazioni del tuo database e creare flussi rapidamente utilizzando un semplice linguaggio DSL.
- — Strumento per la generazione di diagrammi di relazioni entità.
- — Uno strumento gratuito per la scoperta e la comprensione degli schemi di database.
- — Genera documentazione HTML per il tuo database, inclusi diagrammi di relazioni entità.
- — Strumento compatibile con CI per documentare un database, scritto in Go.
Modellatori
- — Un potente e conveniente strumento di progettazione di database che ti aiuta a costruire modelli di dati concettuali, logici e fisici di alta qualità.
- — Oracle SQL Developer Data Modeler è uno strumento grafico gratuito che aumenta la produttività e semplifica le attività di modellazione dei dati.
- — Strumento di modellazione dei dati progettato per PostgreSQL.
Strumenti di migrazione
- — Strumento di configurazione del database come codice che utilizza il concetto di script DDL idempotenti.
- — Strumento di migrazione del database.
- — Migrazione dello schema online per MySQL.
- — Libreria indipendente dal database per tracciare, gestire e applicare modifiche allo schema del database.
- — Simile a diff ma per schemi PostgreSQL.
- — Gestione della migrazione del database in Node.js costruita esclusivamente per Postgres. (Può essere utilizzata anche per altri DB conformi allo standard SQL — ad es. CockroachDB.)
- — Fornisce utilità per descrivere uno schema di database PostgreSQL come YAML.
- — Un operatore Kubernetes per la gestione dichiarativa dello schema del database (gitops per schemi di database).
- — Gestione sensata delle modifiche native al database per uno sviluppo senza framework e un deployment affidabile.
- — Un altro strumento di versionamento e migrazione dello schema realizzato con .NET Core 3.0+ e sperabilmente migliore.
Strumenti per generazione di codice
- — Inferisce SQL DDL (Linguaggio di Definizione dei Dati) dai dati delle tabelle.
- — Utilità da riga di comando per esportare lo schema Oracle in un insieme di script di inizializzazione ddl con possibilità di filtrare informazioni indesiderate, separare ddl in file diversi, e formattare l'output in modo leggibile.
Wrapper
- — Un backend REST API open source per applicazioni mobile, web e IoT.
- — API GraphQL in tempo reale ultra-veloci e istantanee su Postgres con controllo degli accessi a livello granulare, oltre a trigger per webhook su eventi del database.
- — SQL per flussi JSON e CSV.
- — Wrapper per dati estranei di PostgreSQL per MySQL.
- — Un'applicazione Java di livello intermedio, ORDS mappa i verbi HTTP(S) (GET, POST, PUT, DELETE, ecc.) a transazioni di database e restituisce i risultati formattati in JSON.
- — Prisma trasforma il tuo database in un'API GraphQL in tempo reale.
- — API REST per qualsiasi database Postgres.
- — È un modo per servire un'API RESTful da qualsiasi database scritto in Go.
- — Generatore SQL con API Java e HTTP, utilizza una semplice API HTTP RESTful con serializzazione XML o JSON.
- — Converti facilmente il tuo database SQL in un'API REST.
- — Genera automaticamente un servizio API RESTful per il tuo database legacy.
- — Wrapper REST e UI avanzato per le tue query SQL.
Strumenti di backup
- — Backup e ripristino affidabili per PostgreSQL.
- — Backup and Recovery Manager per PostgreSQL.
Replicazione/Operazione sui dati
- — Uno strumento per esplorare e pubblicare dati.
- — Servizio di trasferimento dati distribuito per MySQL.
- — Sincronizza i dati di Postgres tra database.
- — Sistema di replica MySQL a PostgreSQL scritto in Python 3. Il sistema utilizza la libreria mysql-replication per estrarre le immagini delle righe da MySQL che vengono memorizzate in PostgreSQL come JSONB.
- — Un server web Golang per trasmettere le modifiche di Postgres almeno-una-volta attraverso websocket, utilizzando la funzionalità di decodifica logica di Postgres.
- — Il gestore di replica più popolare per PostgreSQL.
Script
- — Una raccolta di piccoli script utili per l'analisi e l'amministrazione dei database, creati dal nostro team di PostgreSQL Experts.
- — Query per misurare l'ingombro statistico negli indici e nelle tabelle per PostgreSQL.
- — Test SQL che verifica se il tuo database segue le regole da .
- — Utilità PostgreSQL utili.
- — Script e comandi SQL utili di .
- — Il set mancante di strumenti utili per DBA Postgres e tutti gli ingegneri.
- — Query e comandi PostgreSQL utili.
- — Questi script sqlplus sono per l'ottimizzazione delle prestazioni e la risoluzione dei problemi del database Oracle.
Monitoraggio/Statistiche/Performance
- — Fornisce una vista grafica dei dati della cronologia delle sessioni attive all'interno dei database Oracle e PostgreSQL.
- — Strumento di monitoraggio MySQL senza agenti e conveniente.
- — Monitora le prestazioni del tuo SQL Server su Linux utilizzando collectd, InfluxDB e Grafana.
- — Uno strumento di monitoraggio remoto sicuro, semplice e senza agenti, ricco di potenti funzionalità per rendere il tuo monitoraggio il più efficace possibile.
- — Piattaforma open source per gestire e monitorare le prestazioni di MySQL e MongoDB.
- — Collettore di statistiche Pganalyze per raccogliere metriche e dati di log di PostgreSQL.
- — Strumento diagnostico di nuova generazione che consente agli utenti di analizzare a fondo la salute dei database Postgres.
- — Esportatore Prometheus per metriche del server PostgreSQL.
- — Misura e traccia ogni aspetto dei tuoi database PostgreSQL.
- — Un cruscotto di prestazioni per Postgres — controlli di salute, indici suggeriti e altro.
- — Raccoglie e visualizza informazioni e statistiche da un server PostgreSQL in esecuzione.
- — Un'interfaccia utente per i piani di spiegazione di Postgres, con suggerimenti per migliorare le prestazioni.
- — Raccoglie statistiche PostgreSQL, e le salva in file CSV o le stampa su stdout.
- — Soluzione di monitoraggio/cruscotto PostgreSQL flessibile e autonoma.
- — Fornisce metriche per il tuo database Postgres.
Zabbix
- — Agente di monitoraggio per PostgreSQL.
- — Orabbix è un plugin progettato per funzionare con Zabbix Enterprise Monitor per fornire monitoraggio multi-livello, reportistica e misurazioni delle prestazioni e disponibilità per i database Oracle, insieme a metriche di prestazioni del server.
- — Questo è il template di monitoraggio Zabbix per il Database PostgreSQL.
- — Script Python per monitorare i database Oracle.
- — ZabbixDBA è un plugin veloce, flessibile e in continuo sviluppo per monitorare il tuo RDBMS.
Testing
- — Un framework di test per database che supporta uno sviluppo semplice basato su test del codice del tuo database.
- — Testing di regressione delle tue query SQL.
Generatore di dati
- — Un framework per generare dati di test realistici e validi ad alto volume per il tuo sistema sotto test (evitando l'anti-pattern Datalite).
- — Potente strumento GUI per la creazione di volumi massicci di dati di test realistici.
- — Piccolo ma potente strumento GUI per popolari schemi Oracle con tonnellate di dati di test realistici.
- — Potente strumento GUI per una generazione rapida di dati di test significativi per i database.
Amministrazione
- — Un veloce analizzatore di log per PostgreSQL.
- — Gestisci i ruoli, le membra, la proprietà degli schemi e i privilegi di un cluster Postgres.
- — Partizionamento Postgres facile come la torta.
HA/Failover/Sharding
- — Estensione Postgres che distribuisce i tuoi dati e le tue query su più nodi.
- — Un template per la disponibilità alta di PostgreSQL con ZooKeeper, etcd o Consul.
- — Una soluzione ad alta scalabilità per il clustering MySQL e la disponibilità alta.
- — Gestore PostgreSQL cloud native per la disponibilità alta di PostgreSQL.
- — Estensione e servizio PostgreSQL per failover automatico e alta disponibilità.
- — Monitoraggio della replica PostgreSQL e demone per il failover.
- — Disponibilità alta per Postgres, basata su riferimenti industriali come Pacemaker e Corosync.
- — Cluster PostgreSQL ad alta disponibilità (basato su 'Patroni' e 'DCS(etcd)'). Automazione del deployment con Ansible.
- — Sistema di clustering per database per la scalabilità orizzontale di MySQL attraverso lo sharding generalizzato.
Kubernetes
- — Rendere facile il funzionamento di database di produzione su Kubernetes.
- — Il Postgres Operator consente cluster PostgreSQL altamente disponibili su Kubernetes (K8s) alimentati da Patroni.
- — Cluster HA PostgreSQL con Docker.
- StackGres
Ottimizzazione della configurazione
- MySQLTuner-perl
- PGConfigurator
postgresql.conf. - pgtune
- postgresqltuner.pl
DevOps
- DBmaestro
- — Toad DevOps Toolkit esegue funzioni chiave di sviluppo database all'interno del tuo workflow DevOps — senza compromettere qualità, prestazioni o affidabilità.
Campioni di schema
- — Schema di esempio del database Oracle.
Reportistica
- — Applicazione di reporting SQL facile da usare, costruita per gli amanti di SQL.
Distribuzioni
- — Strumento che distribuisce facilmente server database MySQL.
- — Modulo PowerShell che puoi considerare come un SQL Server Management Studio da linea di comando.
- — Installazione PostgreSQL completa confezionata come un'app standard per Mac.
- — Una distribuzione di Postgres amichevole per gli sviluppatori.
- — Front-end di gestione PostgreSQL basato sul web che unisce diversi utilità e applicazioni per l'uso con PostgreSQL.
Sicurezza
- — Suite di sicurezza per database. Proxy per database con crittografia a livello di campo, ricerca attraverso dati crittografati, prevenzione delle iniezioni SQL, rilevamento delle intrusioni, honeypots. Supporta la crittografia lato client e lato proxy ('trasparente'). SQL, NoSQL.
Formatter di codice
- — Pretty-printing indipendente dal linguaggio tramite apprendimento automatico.
Contribuire
- Le tue contribuzioni sono sempre benvenute! Per favore leggi le prima.
Ci sono trovare per DB – condividete. Sono inoltre felice di ricevere feedback – PR e stelle. Per qualsiasi domanda sulla creazione dei propri elenchi – scrivete pure.
Fonte: habr.com
