
Ciao, Habr! Credo che ognuno di noi abbia un file dove teniamo qualcosa di utile e interessante per noi. Alcuni link a articoli, libri, repository, manuali. Possono essere segnalibri nel browser o anche semplicemente schede aperte lasciate per dopo. Col tempo, tutto questo si ingrandisce, i link smettono di funzionare e gran parte dei materiali diventa obsoleta.
E se condividessimo queste risorse con la comunità e pubblicassimo quel file su GitHub? Allora i tuoi sforzi potrebbero essere utili anche ad altri, e mantenere l'aggiornamento potrebbe avvenire insieme, accettando le modifiche da chiunque attraverso le vecchie e care PR. È proprio a questo che è destinato il progetto . È tra i primi 10 repository di GitHub, ha 138K stelle, e il link ai tuoi sforzi potrebbe trovarsi direttamente nel suo README principale, attirando un enorme pubblico verso la tua creatività. Tuttavia, per questo occorre fare un po' di lavoro. Voglio condividere con te la mia esperienza in merito.
Mi chiamo Maksim Gramin. In KROK mi occupo di sviluppo Java e ricerche nel campo dei database. In questo post ti spiegherò cosa sono le Awesome Lists e come creare un vero repository awesome ufficiale.
Cosa sono le Awesome Lists
Quando devo affrontare una nuova tecnologia o un linguaggio di programmazione, il primo posto dove vado è proprio qui: trovo la sezione giusta e lì ci sono le liste adatte. E a giudicare dal numero di stelle e dalla loro continua crescita, non sono l'unico a farlo.

In realtà, si tratta di un normale readme.md, che vive in un separate , occupando il 8° posto tra tutti i repository di GitHub e includendo link ad altre liste dedicate a un particolare argomento. Ad esempio, nella sezione Linguaggi di Programmazione puoi trovare le liste Awesome Python e Awesome Go, mentre nello Sviluppo Front-End ci sono un'enorme quantità di risorse per lo sviluppo WEB. E ovviamente, c'è la sezione (torneremo su questo più tardi). E sì, tutto ciò non si limita solo a temi tecnici. Ad esempio, nelle sezioni Intrattenimento e Gioco ci sono anche molte cose interessanti (personalmente mi ha colpito ).
La caratteristica principale è che tutte queste liste non sono curate personalmente dall'autore, ma dalla comunità e sono redatte secondo un manifesto specifico e molto rigoroso Ogni elenco di questo tipo è una comunità autonoma di specialisti, vive la propria vita ed è aperto a pull request che lo rendano ancora migliore. Chiunque desideri può anche creare il proprio elenco se un certo tema non è ancora stato trattato.
L'autore dell'idea e coordinatore di tutto questo è il leggendario Sindre Sorhus, , autore di oltre e sarà proprio lui ad accettare le vostre PR.

Come entrare in una awesome-list
Se non hai trovato un elenco adatto al tema che ti interessa, questo è il primo segnale che dovresti crearlo tu stesso!
Parlerò con l'esempio della mia creatura, Di progetto in progetto, mi trovo a lavorare con i database più vari, e per questo ho creato un file in cui raccolgo strumenti utili per lavorarci, vari migratori di DB, IDE, pannelli di amministrazione, strumenti di monitoraggio e altro ancora. Strumenti che ho già utilizzato o che avevo solo intenzione di iniziare ad usare. Ho condiviso questo file con i colleghi in KROK e oltre. Questo ha aiutato molte persone ed è stato interessante. Alla fine, ho cercato maggiore fama quando una volta ho notato che nella sezione Databases non c'era un elenco su questo tema. E ho deciso di aggiungere il mio.
Cosa serve?
- Registriamo un normale repository GitHub con un nome del tipo awesome-qualcosa. Nel mio caso era awesome-database-tools.
- Adattiamo il nostro elenco al formato awesome, in questo ci aiuterà che genererà tutti i file necessari nel formato richiesto.
- Configuriamo un vero CI. e travis ci aiuteranno a controllare del nostro elenco.
- Aspettiamo 30 giorni.
- Facciamo una revisione di almeno 2 PR altrui.
- E infine facciamo PR nel repository principale, dove aggiungiamo il link al nostro repository. Qui è importante leggere attentamente tutto e seguire meticolosamente tutti i numerosi requisiti per il nuovo elenco e per la stessa PR.
Il mio primo approccio

Ma è passato un po' di tempo, ho raccolto ancora più materiale, ho lavorato sugli errori e ho osato fare .
Ma ho dimenticato una cosa molto importante, che mi è stata gentilmente suggerita:

Non sono stato molto attento e non ho aggiunto l'unicorno come segno di conferma che tutte le condizioni erano soddisfatte.

Poi è passato ancora un po' di tempo, un altro po' di modifiche in base ai commenti, e finalmente è arrivato il tanto atteso che la mia PR è stata accettata.
Così sono diventato l'autore della mia prima lista e ho iniziato a ricevere dalla comunità per l'aggiunta di nuovi strumenti. E molti di essi sono già inclusi in . Se non hai voglia di seguire il link,
ecco una selezione 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 straordinari che semplificano il lavoro con i database per DBA, DevOps, sviluppatori e comuni mortali.
Sentiti libero di aggiungere informazioni sui tuoi strumenti db o sui tuoi strumenti db di terze parti preferiti.
Contenuti
IDE
- — Strumento di amministrazione multiuso di punta per la gestione, il controllo e lo sviluppo dei database.
- — Aqua Data Studio è un software di produttività per sviluppatori di database, DBA e analisti.
- — Strumento di gestione di più 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 lo sviluppo, la gestione e l'amministrazione di database MySQL e MariaDB.
- — IDE potente per la gestione, l'amministrazione e lo sviluppo di Oracle.
- — Strumento GUI per la gestione e lo sviluppo di database e oggetti.
- — Ambiente di sviluppo integrato potente per lo sviluppo, la gestione, l'amministrazione, l'analisi dei dati e il reporting di SQL Server.
- — IDE moderno (JavaScript/Electron), open source per MongoDB. Ha caratteristiche per supportare lo sviluppo, l'amministrazione e l'ottimizzazione delle prestazioni sui 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 visivo 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 gratuito e integrato che semplifica lo sviluppo e la gestione di Oracle Database sia nelle implementazioni tradizionali che nel 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 mirato allo sviluppo di unità di programma memorizzate per le banche dati Oracle.
- — Strumento completo e potente per la gestione, l'amministrazione e lo sviluppo di database per PostgreSQL.
- — Toad è la soluzione di database di punta per sviluppatori, amministratori e analisti di dati. Gestisci cambiamenti complessi nel database con un unico strumento di gestione dei database.
- — Strumento semplificato di sviluppo database per MySQL e Postgres.
- — TOra è un IDE SQL open source per Oracle, MySQL e PostgreSQL.
- — Crea, amministra, interroga e esplora Valentina DB, MySQL, MariaDB, PostgreSQL e SQLite database GRATIS.
Gestori/Client GUI
- — Gestione dei database in un unico file PHP.
- — Strumento universale per sviluppatori, DBA e analisti.
- — Interfaccia UI ClickHouse aziendale per eseguire query, monitorare la salute di ClickHouse e fare molte altre cose.
- — Accesso SQL diretto a tutti i tuoi dati, indipendentemente da dove si trovano.
- — Strumento web per la gestione dei database.
- — Browser di database web-based per PostgreSQL, scritto in Go e funzionante su macOS, Linux e Windows.
- — Strumento di amministrazione 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 le operazioni 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 cross-platform incentrato sullo shell.
- — Sequel Pro è un'applicazione di gestione database Mac veloce e facile da usare per lavorare con i database MySQL & MariaDB.
- — Strumento di gestione dati che consente di lavorare con SQL Server, Azure SQL DB e SQL DW da Windows, macOS e Linux.
- — L'interfaccia grafica supporta tutte le funzionalità di SQLite.
- — Editor SQL basato su web eseguito nel tuo cloud privato.
- — Un semplice e potente gestore Postgres per macOS.
- — Client SQL grafico scritto in Java che ti permetterà di visualizzare la struttura di un database compatibile JDBC, navigare nei dati nelle tabelle, emettere comandi SQL, ecc.
- — Gestione database per VSCode.
- — L'interfaccia grafica MySQL più completa e facile da usare.
- — Editor SQL & Business intelligence semplice e open source per Clickhouse.
- — Strumento GUI moderno, nativo e intuitivo per database relazionali: MySQL, PostgreSQL, SQLite e altro.
- — GUI di amministrazione web PostgreSQL — usa i tuoi database PostgreSQL da ovunque, con un'interfaccia web AJAX ricca e velocissima.
Strumenti CLI
- — Collega un database per emettere comandi SQL all'interno di IPython o IPython Notebook.
- — Un CLI per Redis con completamento automatico e evidenziazione della sintassi.
- — Strumento di amministrazione simile a top per PostgreSQL.
- — Applicazione simile a top per il monitoraggio delle 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.
- — Un'interfaccia a riga di comando universale per PostgreSQL, MySQL, Oracle Database, SQLite3, Microsoft SQL Server, inclusi i database NoSQL e non relazionali!
dbcli
- — AthenaCLI è uno strumento CLI per il servizio AWS Athena che può eseguire il completamento automatico e l'evidenziazione della sintassi.
- — CLI per database SQLite con completamento automatico e evidenziazione della sintassi.
- — Un client a riga di comando per SQL Server con completamento automatico e evidenziazione della sintassi.
- — Un client Terminal per MySQL con completamento automatico e evidenziazione della sintassi.
- — CLI Postgres con completamento automatico e evidenziazione della sintassi.
- — CLI Vertica con completamento automatico e evidenziazione della sintassi.
Navigazione e visualizzazione dello schema DB
- — Strumento rapido e semplice per aiutarti a disegnare i tuoi diagrammi delle relazioni tra database e flussi rapidamente usando un semplice linguaggio DSL.
- — Strumento di generazione di diagrammi delle relazioni tra entità.
- — Strumento gratuito per la scoperta e la comprensione degli schemi di database.
- — Generazione della tua documentazione HTML per il database, inclusi i diagrammi delle relazioni tra 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 schematica online per MySQL.
- — Libreria indipendente dal database per il tracciamento, la gestione e l'applicazione delle modifiche allo schema del database.
- — Come diff ma per gli schemi PostgreSQL.
- — Gestione delle migrazioni del database Node.js costruita esclusivamente per postgres. (Ma può essere utilizzata anche per altri DB conformi allo standard SQL — ad es. CockroachDB.)
- — Fornisce strumenti per descrivere uno schema di database PostgreSQL in YAML.
- — Un operatore Kubernetes per la gestione dichiarativa dello schema del database (gitops per gli schemi dei database).
- — Gestione del cambiamento sensata e nativa al database per uno sviluppo senza framework e un deploy affidabile.
- — Un altro strumento di versioning e migrazione degli schemi realizzato con .NET Core 3.0+ e sperabilmente migliore.
Strumenti di generazione di codice
- — Inferisce SQL DDL (Data Definition Language) dai dati delle tabelle.
- — Utilità da riga di comando per esportare lo schema Oracle in un insieme di script ddl di inizializzazione, con la possibilità di filtrare informazioni indesiderate, separare DDL in file diversi, formattare l'output in modo leggibile.
Wrapper
- — Un backend API REST open source per applicazioni mobili, web e IoT.
- — API GraphQL in tempo reale, super veloci e istantanee su Postgres con un controllo degli accessi granulare, oltre a innescare webhook sugli eventi del database.
- — SQL per flussi JSON e CSV.
- — Wrapper di dati esterni di PostgreSQL per MySQL.
- — Un'applicazione Java di livello medio, ORDS mappa i verbi HTTP(S) (GET, POST, PUT, DELETE, ecc.) a transazioni database e restituisce eventuali 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 Java e API 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 PostgreSQL affidabili.
- — Backup e Recovery Manager per PostgreSQL.
Replica/Operazioni sui dati
- — Uno strumento per esplorare e pubblicare dati.
- — Servizio di trasferimento dati distribuito per MySQL.
- — Sincronizzazione dei dati Postgres tra database.
- — Sistema di replica da 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 cambiamenti Postgres almeno una volta attraverso websocket, utilizzando la funzione di decodifica logica di Postgres.
- — Il gestore di replica più popolare per PostgreSQL.
Script
- — Una collezione di piccoli script utili per l'analisi e l'amministrazione del database, creata dal nostro team di esperti PostgreSQL.
- — Query per misurare il bloat statistico negli indici e nelle tabelle per PostgreSQL.
- — Test SQL che verifica se il tuo database segue le regole di .
- — Utilità PostgreSQL utili.
- — Script e comandi SQL utili di <timescale.com>.
- — Il set mancante di strumenti utili per i DBA di 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/Prestazioni
- — Fornisce una vista grafica dei dati della cronologia delle sessioni attive all'interno del DB 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 funzionalità potenti per rendere il 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 eseguire un'analisi approfondita della salute dei database Postgres.
- — Esportatore Prometheus per le metriche del server PostgreSQL.
- — Misura e monitora ogni aspetto dei tuoi database PostgreSQL.
- — Un cruscotto di prestazioni per Postgres — controlli della 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 sul stdout.
- — Soluzione flessibile di monitoraggio/dashboarding delle metriche PostgreSQL.
- — Fornisce metriche per il tuo database postgres.
Zabbix
- — Agente di monitoraggio per PostgreSQL.
- — Orabbix è un plugin progettato per lavorare con Zabbix Enterprise Monitor per fornire monitoraggio a più livelli, reportistica e misurazione delle prestazioni e disponibilità per i database Oracle, insieme alle metriche delle prestazioni del server.
- — Questo è il modello di monitoraggio Zabbix per il database PostgreSQL.
- — Script Python per monitorare i database Oracle.
- — ZabbixDBA è un plugin veloce, flessibile e in continua evoluzione per monitorare il tuo RDBMS.
Testing
- — Un framework di test del database che supporta lo sviluppo test-driven del codice del tuo database.
- — Test 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 in fase di test (evita il modello anti-pattern Datalite).
- — Potente strumento GUI per creare enormi volumi di dati di test realistici.
- — Strumento GUI piccolo ma potente per popolare schemi Oracle con tonnellate di dati di test realistici.
- — Potente strumento GUI per una rapida generazione di dati di test significativi per i database.
Amministrazione
- — Un veloce analizzatore di log di PostgreSQL.
- — Gestisci i ruoli, le appartenenze ai ruoli, la proprietà degli schemi e i privilegi di un cluster Postgres.
- — Partizionamento Postgres facile come una torta.
HA/Failover/Sharding
- — Estensione di Postgres che distribuisce i tuoi dati e le tue query su più nodi.
- — Un modello per l'Alta Disponibilità PostgreSQL con ZooKeeper, etcd o Consul.
- — Una soluzione ad alta scalabilità per clustering MySQL e Alta Disponibilità.
- — Gestore PostgreSQL cloud-native per l'alta disponibilità di PostgreSQL.
- — Estensione Postgres e servizio per failover automatico e alta disponibilità.
- — Monitoraggio della replica PostgreSQL e demone di failover.
- — Alta disponibilità per Postgres, basato su riferimenti di settore come Pacemaker e Corosync.
- — Cluster ad alta disponibilità di PostgreSQL (basato su "Patroni" e "DCS(etcd)"). Automazione del deployment con Ansible.
- — Sistema di clustering dei database per il ridimensionamento orizzontale di MySQL attraverso lo sharding generalizzato.
Kubernetes
- — Rendere facile l'esecuzione di database di livello produzione su Kubernetes.
- — L'Operatore Postgres consente cluster PostgreSQL ad alta disponibilità su Kubernetes (K8s) alimentati da Patroni.
- — Cluster HA PostgreSQL con Docker.
- — PostgreSQL Full Stack di livello enterprise su Kubernetes.
Ottimizzazione della configurazione
- — Script scritto in Perl che ti consente di rivedere rapidamente un'installazione MySQL e apportare modifiche per aumentare prestazioni e stabilità.
- — Strumento online gratuito per generare una configurazione ottimizzata
, affinché il tuo database di test non voglia effettuare un backup silenziosamente.. - — Guida alla configurazione di PostgreSQL.
- — Script semplice per analizzare la configurazione del database PostgreSQL e fornire consigli per l'ottimizzazione.
DevOps
- — DBmaestro accelera i cicli di rilascio e supporta la flessibilità in tutto l'ecosistema IT.
- — Toad DevOps Toolkit esegue funzioni fondamentali di sviluppo del database all'interno del tuo flusso di lavoro DevOps, senza compromettere qualità, prestazioni o affidabilità.
Esempi di schema
- — Schemi di esempio del database Oracle.
Reporting
- — Un'applicazione di reporting SQL facile da usare, costruita per gli amanti di SQL.
Distribuzioni
- — Strumento che distribuisce facilmente server di database MySQL.
- — Modulo PowerShell che puoi pensare come un SQL Server Management Studio da riga di comando.
- — Installazione PostgreSQL completa, confezionata come un'app standard per Mac.
- — Una distribuzione di Postgres amichevole per gli sviluppatori.
- — Interfaccia web di gestione per PostgreSQL che include diversi strumenti e applicazioni per l'uso con PostgreSQL.
Sicurezza
- — Suite di sicurezza per database. Proxy per database con crittografia a livello di campo, ricerca tra dati crittografati, prevenzione delle iniezioni SQL, rilevamento delle intrusioni, honeypots. Supporta la crittografia lato client e proxy ("trasparente"). SQL, NoSQL.
Formatter di codice
- — Formattazione di codice indipendente dal linguaggio tramite machine learning.
Contribuire
- Le tue contribuzioni sono sempre benvenute! Ti preghiamo di leggere le prima.
Ci sono scoperte per il database - condividile. Sarò felice di ricevere feedback - PR e stelle. Se hai domande sulla creazione delle tue liste, scrivimi pure.
Fonte: habr.com
