ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

Ti invitiamo a scoprire la trascrizione della relazione del 2017 di Igor Strykhar "ClickHouse – analisi dei dati visivamente rapida e chiara in Tabix".

Interfaccia web per ClickHouse nel progetto Tabix.
Funzionalità principali:

  • Funziona con ClickHouse direttamente dal browser, senza bisogno di installare software aggiuntivo;
  • Editor di query con evidenziazione della sintassi;
  • Completamento automatico dei comandi;
  • Strumenti di analisi grafica per l'esecuzione delle query;
  • Schemi di colori a scelta.
    ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar


Riproduci video

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

Sono il direttore tecnico di СМИ2. Siamo un aggregatore di scambio di notizie. Conserviamo molti dati che otteniamo dai nostri partner e li registriamo in ClickHouse – circa 30.000 richieste al secondo.

Questi dati includono:

  • Clic sui notiziari.
  • Visualizzazioni di notizie nell'aggregatore.
  • Visualizzazioni di banner nella nostra rete.
  • E registriamo eventi dal nostro contatore interno, simile a Yandex.Metrics. Questa è la nostra microanalitica.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

Abbiamo avuto una vita molto turbolenta prima di ClickHouse. Abbiamo sofferto molto nel cercare di immagazzinare questi dati in qualche modo e analizzarli.

La vita prima di ClickHouse — infiniDB.

La prima cosa che abbiamo avuto è stata infiniDB. È durata 4 anni. L'abbiamo avviata con difficoltà.

  • Non supporta la clusterizzazione o lo sharding. Non ci sono funzionalità avanzate di questo tipo disponibili di default.
  • Ha difficoltà nel caricamento dei dati. Solo un'utilità da console specifica, che poteva caricare file CSV e solo in modo piuttosto confuso.
  • Il database è monothread. Si poteva solo scrivere o leggere. Ma consentiva di gestire grandi volumi di dati.
  • Inoltre, aveva una soluzione piuttosto interessante. Era necessario riavviare il server ogni notte, altrimenti smetteva di funzionare.

È stata operativa fino alla fine del 2016, quando siamo passati completamente a ClickHouse.

La vita prima di ClickHouse — Cassandra

Poiché infiniDB era monothread, abbiamo deciso che avevamo bisogno di un database multi-thread, in cui potessimo scrivere molti flussi simultaneamente.

Abbiamo provato molte cose interessanti. Poi abbiamo deciso di provare Cassandra. Con Cassandra abbiamo avuto risultati eccezionali: 10.000 richieste al secondo in scrittura. Circa 2.000 richieste in lettura.

Ma anche essa presentava le proprie peculiarità. Una volta al mese o due volte al mese, si verificava una dissincronizzazione del database. Era necessario svegliarsi e correre a riparare Cassandra. Riavviavamo i server uno alla volta. Tutto tornava a essere fluido e armonioso.

La vita prima di ClickHouse – Druid

Poi abbiamo capito che dovevamo scrivere ancora più dati. Nel 2016 abbiamo iniziato a considerare Druid.

Druid è un database open source, scritto in Java. Molto specifico. Si adattava al clickstream, quando dovevamo memorizzare un flusso di eventi e poi fare aggregazioni o report analitici su di essi.

Druid aveva la versione 0.9.X.

Il database stesso è complesso da implementare. Questa è la difficoltà dell'infrastruttura. Per implementarlo era necessario installare una grande quantità di hardware. Ogni hardware aveva un proprio ruolo specifico.

Per caricare i dati, era necessario adottare alcune pratiche complesse. C'è un progetto Open Source – Tranquility, che perdeva i dati nel flusso. Quando cercavamo di caricare dati, lui li perdeva.

Ma in qualche modo abbiamo iniziato a implementarlo. Siamo come i ricci che si pungevano, ma continuavano a mangiare il cactus, e abbiamo iniziato a implementarlo. Ci è voluto circa un mese per preparare tutta l'infrastruttura necessaria. Cioè, ordinare i server, configurare i ruoli, automatizzare completamente il deployment. In caso di guasto del cluster, dovremmo essere in grado di far partire automaticamente un secondo cluster.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

Ma qui è accaduto un miracolo. Ero in vacanza e i miei colleghi mi hanno inviato un link a habr, dove si dice che Yandex ha deciso di aprire ClickHouse. Ho detto, proviamo.

E letteralmente in 2 giorni abbiamo messo in piedi un cluster di test per ClickHouse. Abbiamo iniziato a caricarci i dati. Rispetto a infiniDB, è semplicissimo; rispetto a Druid, è semplicissimo. Anche rispetto a Cassandra, è molto più semplice. Perché se si caricano dati in Cassandra da PHP, non è affatto semplice.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

Cosa abbiamo ottenuto? Prestazioni nella velocità. Prestazioni nell'archiviazione dei dati. Cioè, viene utilizzato molto meno spazio su disco. ClickHouse è veloce, è molto più veloce rispetto ad altri prodotti.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

Al momento del lancio, quando Yandex ha pubblicato ClickHouse come OpenSource, c'era solo un client da console. Noi, nella nostra azienda СМИ2, abbiamo deciso di provare a realizzare un client nativo per web, in modo da poter aprire una pagina dal browser, scrivere una query e ottenere il risultato, perché abbiamo iniziato a scrivere molte query. Scrivere in console è difficoltoso. E abbiamo sviluppato la nostra prima versione.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

E verso l'inverno dello scorso anno hanno iniziato a comparire strumenti di terze parti per lavorare con ClickHouse. Questi includono strumenti come:

Esaminerò alcuni di questi strumenti, ovvero quelli con cui ho lavorato.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

È uno strumento valido, ma per Druid. Quando abbiamo implementato Druid, ho esplorato SuperSet. Mi è piaciuto. Funziona molto bene per Druid.

Per ClickHouse non è adatto. Cioè, funziona, si avvia, ma è in grado di elaborare solo query elementari come: SELECT event, GROUP BY event. Non supporta la sintassi più complessa di ClickHouse.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

Il prossimo strumento è Apache Zeppelin. È una cosa buona e interessante. Funziona. Supporta i notebook, i dashboard e le variabili. So che qualcuno della comunità ClickHouse lo utilizza.

Ma non c'è supporto per la sintassi di ClickHouse, quindi dovrete scrivere le query o nella console o altrove. Successivamente, dovrete verificare che tutto funzioni. È semplicemente scomodo. Tuttavia, il supporto per il dashboard è buono.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

Il prossimo strumento è Redash.IO. Redash è ospitato online. Quindi, a differenza degli strumenti precedenti, non è necessario installarlo. È un sistema di dashboarding con la possibilità di consolidare dati da diverse fonti. Potete esportare da ClickHouse, MySQL, PostgreSQL e altri database.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

Letteralmente un mese fa (a marzo 2017) è arrivato il supporto in Grafana. Quando costruite report in Grafana, ad esempio sullo stato dell'hardware o alcune metriche, ora potete costruire lo stesso grafico o un pannello con i dati da ClickHouse direttamente. È molto comodo e noi lo stiamo utilizzando. Questo permette di identificare anomalie. Se succede qualcosa e un pezzo di hardware si guasta o si stressa, è possibile vedere la causa, se questi dati sono stati registrati in ClickHouse.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

Mi è stato molto scomodo lavorare con questi strumenti o nella console. Così ho deciso di migliorare la nostra prima interfaccia. Ho preso spunto dall'idea di EventSQL, SeperSet, Zeppelin.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

Cosa volevi? Volevo ottenere grafici, un editor migliorato e implementare il supporto per i dizionari di suggerimenti. Perché ClickHouse ha una caratteristica eccellente: i dizionari. Ma lavorare con i dizionari è complicato, perché bisogna ricordare il formato dei valori memorizzati, cioè se si tratta di un numero o di una stringa, ecc. Dato che utilizziamo spesso i dizionari nelle loro diverse varianti, era piuttosto difficile scrivere le query.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

Sono trascorsi 3 mesi dal rilascio della nostra prima versione. Ho creato circa 330 commit nel ramo chiuso, e così è nato Tabix.

A differenza della versione precedente, che si chiamava ClickHouse-Frontend, ho deciso di rinominarlo con un nome semplice. E così è nato Tabix.

Cosa è stato aggiunto?

Disegna grafici. Supporta la sintassi SQL di ClickHouse. Suggerisce funzioni e sa fare molte cose interessanti.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

Ecco come appare lo schema generale di Tabix. A sinistra è presentato l'albero. Al centro c'è l'editor della query. E in basso c'è il risultato di questa query.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

Ora mostrerò come funziona l'editor della query.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

Qui si attiva automaticamente il completamento automatico nella tabella, suggerendo corrispondentemente i campi. E ci sono suggerimenti per le funzioni. Se premi ctrl e invio, la richiesta verrà eseguita o restituirà un errore. La richiesta più semplice viene inviata a Tabix e riceviamo il risultato, quindi è possibile lavorare rapidamente con ClickHouse.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

I dizionari, come ho già detto, sono una cosa molto interessante con cui lavoriamo molto. Hanno permesso di realizzare molte cose. Ad esempio, nei dizionari conserviamo tutte le città. Conserviamo l'identificatore della città e il nome della città, la sua latitudine e longitudine. E nel database conserviamo solo l'identificatore della città. Pertanto, comprimiamo i dati in modo molto efficace.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

Sembra una cosa semplice, ma in ClickHouse gioca un ruolo molto interessante. Poiché ClickHouse supporta solo join annidati, la query si espande notevolmente sia in verticale che in orizzontale. Quando si apre una parentesi e segue un'espressione lunga, una funzione apparentemente semplice come il ritiro della query rende più facile lavorare con essa. Perché quando la query ha 200-300 righe e si espande tanto, il ritiro aiuta davvero a trovare un punto specifico o a localizzarla.

Albero degli oggetti, query multiple e schede (Video 13:46) https://youtu.be/w1-XsL3nbRg?t=826)

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

Poi mostrerò l'albero e le schede. A sinistra c'è l'albero, in alto puoi creare più schede. Le schede funzionano come uno spazio di lavoro. Puoi creare diverse schede e nominare ognuna a modo tuo. È come un mini sistema per la costruzione di report.

Le schede vengono salvate automaticamente. Se ricarichi il browser, lo chiudi, o apri Tabix, tutto sarà salvato.

Hotkey – comodo (Video 14:39) https://youtu.be/w1-XsL3nbRg?t=879)

Ci sono hotkey e ce ne sono abbastanza. Alcuni di essi sono stati evidenziati qui come esempio. Si tratta di switch di scheda, eseguire una query o eseguire più query.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

Mostrerò come lavorare con il risultato. Inviamo la richiesta. Qui disegno sin, cos e tg. È possibile evidenziare il risultato, ad esempio disegnare una mappa tipica sulla colonna. Si possono evidenziare i valori positivi o negativi. Oppure semplicemente colorare un particolare elemento della tabella. Questo è utile quando la tabella è enorme e bisogna trovare a occhio un'anomalia. Quando cercavo anomalie, evidenziavo alcune righe o elementi di verde o rosso.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

Ci sono molte cose interessanti. Ad esempio, come copiare in Redmine Markdown. Se è necessario copiare il risultato da qualche parte, è molto comodo. Basta selezionare un'area, dire «Copia in Redmine» e copierà in Redmine Markdown o creerà una richiesta Where.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

Il prossimo passo è l'ottimizzazione delle query. Una volta ho dimenticato di specificare il campo 'date'. Così la mia query in ClickHouse è stata elaborata non molto velocemente, ma abbastanza veloce, cioè in meno di un secondo. Quando ho visto quante righe stava elaborando, mi sono spaventato. In un giorno non scriviamo tante righe in questa tabella. Ho iniziato ad analizzare la query e ho notato che avevo saltato una data in un punto. Cioè, ho dimenticato di specificare che avevo bisogno dei dati non dall'intera tabella, ma per un periodo specifico.

In Tabix c'è una scheda 'Stats', dove è memorizzata tutta la storia delle query inviate, cioè puoi vedere quante righe sono state lette da quella query e quanto tempo ha impiegato per essere eseguita. Questo permette di ottimizzare.

Sui risultati di una query puoi costruire una tabella pivot. Hai inviato una query in ClickHouse, hai ottenuto dei dati. E poi puoi manipolare questi dati con il mouse e costruire una tabella pivot.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

Un'altra cosa interessante è la creazione di grafici. Supponiamo di avere una query del genere: su sin, cos da 0 a 299. E per disegnarlo devi selezionare la scheda 'Draw' e otterrai un grafico con i tuoi sin e cos.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

Puoi suddividerlo in diverse aree, ad esempio, puoi disegnare due grafici affiancati. Scrivi un comando e un altro comando.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

È possibile disegnare istogrammi.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

Puoi suddividerlo in una matrice di grafici.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

Puoi costruire una mappa di calore.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

Puoi costruire un calendario termico. Tra l'altro, è molto utile quando devi analizzare le anomalie nel corso dell'anno, ovvero trovare picchi o cali. Questa visualizzazione dei dati mi è stata utile.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

Il successivo è il Treemap.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

I Sankey sono un grafico interessante. È o Streamgraphs o River. Ma io lo chiamo River. Permette anche di cercare anomalie. È molto comodo. Raccomando di usarlo per le ricerche.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

Una prossima cosa interessante è la visualizzazione di una mappa dinamica. Se nel tuo database sono memorizzati latitudine, longitudine e, ad esempio, la destinazione, se hai, per esempio, trasporti su strada o voli, puoi tracciarne i percorsi. Puoi anche impostare la velocità, la dimensione di questi oggetti in cui atterrano.

Ma il problema con questa mappa è che disegna solo la mappa del mondo, senza dettagli.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

In seguito, ho aggiunto Google map. Se memorizzi latitudine e longitudine, puoi visualizzare il risultato su Google map, ma senza supporto per gli aerei.

Abbiamo discusso le funzioni principali per lavorare con il risultato e la query in Tabix.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

Il prossimo è l'analisi del tuo server ClickHouse. C'è una scheda separata "Metriche", dove puoi vedere la dimensione dei dati memorizzati per ogni colonna. Nello screenshot, puoi vedere che questo campo "referrer" occupa circa 730 Gb. Se rinunciamo a questo campo, risparmieremo tre shard da 700 GB, cioè circa 2 TB che non ci servono.

Abbiamo anche il campo "request_id", che memorizziamo come stringa. Ma se iniziamo a memorizzarlo in formato numerico, questo campo sarà notevolmente compresso.

Qui è mostrata anche la configurazione del server e l'elenco delle nodi del tuo cluster.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

La scheda successiva è dedicata alle metriche. Vengono prelevate in tempo reale da ClickHouse e consentono di analizzare rapidamente lo stato del server e capire cosa sta succedendo. Non è un sostituto completo di Grafana. Serve per un'analisi veloce.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

La scheda successiva riguarda i processi. Da essa si può comprendere cosa stia accadendo sul server. Comprendere cosa stia succedendo. Ho avuto una query che consuma 200 GB ogni volta in lettura. L'ho notato grazie a questa interfaccia. L'ho intercettata e corretta. E ora consuma circa 30 GB, quindi le prestazioni sono migliorate notevolmente.

ClickHouse – analisi dei dati visiva e rapida in Tabix. Igor Strykhar

Grazie! Ed è in OpenSource

Ho finito. E, tra l'altro, è in OpenSource, è gratuito e non è nemmeno necessario scaricarlo. Apritelo nel browser e funzionerà tutto.

Domande

Igor, quali sono i prossimi passi? Come intendi sviluppare questo strumento?

Successivamente, potrebbe arrivare un dashboard. Sto considerando l'integrazione con altri database. L'ho fatto, ma non l'ho ancora pubblicato in OpenSource. Si tratta di MySQL e, forse, PostgreSQL. Sarà quindi possibile inviare query da Tabix non solo a ClickHouse, ma anche ad altri strumenti.

È evidente che è stato fatto un enorme lavoro. È emersa un'idea piuttosto completa. È stato progettato nel browser, probabilmente per escludere soluzioni improvvisate su vari assi e mettere tutto insieme rapidamente. Ho sentito dire che voi php Lavorate, quindi è più semplice buttarlo nel browser e funzionerà ovunque. Su questo non ci sono dubbi. La domanda è: quante persone hanno lavorato su questo? E quanto tempo è stato necessario? Perché gli strumenti personalizzati di solito non hanno una funzionalità così ampia.

Da estate ad autunno ha lavorato una sola persona del nostro team. Questa era la prima versione. Poi ho fatto 330 commit da solo. Quello che vedete, l'abbiamo fatto a metà con un collega. In 3 mesi dalla prima versione alla finale, ho fatto gran parte del lavoro da solo. Ma sono molto scarso in Javascript. Questo è stato il mio unico e, spero, ultimo progetto in Javascript su cui ho lavorato. Me ne sono occupato, ho guardato - oh, orrore. Ma avevo davvero voglia di completare il prodotto e questo è ciò che è venuto fuori.

Grazie mille per la presentazione! È uno strumento eccellente. S Tableau avete confrontato?

Grazie. Ecco perché si chiama Tabix, perché le prime lettere coincidono.

Perché competete?

Ci saranno molti investimenti, concorreremo.

Come suggerirete di venderlo agli analisti interni, dato che questo strumento sostituirà completamente *Tableau*? Какие будут аргументы?

Funziona nativamente con ClickHouse. Ho provato Tableau, ma lì non è possibile scrivere supporto per i dizionari e simili. So come lavorano le persone con Tabix. Scrivono una query, esportano in CSV e caricano in BI. E già lì fanno qualcosa. Ma faccio fatica a immaginare come facciano perché è uno strumento grafico. Può esportare 5.000 righe, al massimo 6.000 righe, ma non di più, altrimenti il browser non regge.

Cioè, ci sono alcune serie limitazioni sul volume di dati, vero?

Sì. Non riesco a immaginare che vogliate esportare 10.000 righe sullo schermo del browser. Perché?

Si presuppone che sia un'interfaccia per una rapida visualizzazione dei dati? Per girare un po', ruotare?

Sì, guardare rapidamente come funziona e semplicemente costruire un grafico riassuntivo. E poi consegnarlo da qualche parte. Noi abbiamo il nostro sistema di reportistica, da cui prendo semplicemente questa query. Disegno in Tabix e invio al nostro reporting.

E un'altra domanda. Analisi cohort?

Se ci sono richieste, aggiungeremo.

Quando abbiamo appena iniziato a usare ClickHouse, quanto tempo ci è voluto per l'implementazione ClickHouse e per portarlo a stato di produzione?

Come ho detto, abbiamo implementato un cluster di test in tempi molto ristretti. In due giorni lo abbiamo messo in funzione. E l'abbiamo testato per un paio di settimane. Siamo arrivati in produzione dopo circa tre mesi. Ma avevamo il nostro ETL, cioè uno strumento per la registrazione dei dati. E questo scriveva ovunque fosse possibile. Sa scrivere in MongoDB, Cassandra, MySQL. Insegnargli a scrivere in ClickHouse è stato semplice. Avevamo un'infrastruttura pronta per un'implementazione rapida. Dopo circa tre mesi abbiamo iniziato a lanciare il primo componente. Dopo sei mesi ci siamo completamente liberati di tutto il resto. Ci è rimasto solo ClickHouse.

Igor, grazie mille per la presentazione. Mi è piaciuta molto la funzionalità di tracciamento dei percorsi sulle mappe. È prevista l'integrazione con Yandex.Maps e, in particolare, con le mappe personalizzate di Yandex?

Ho provato a integrarmi al posto di Google Maps, ma non ho trovato la modalità scura su Yandex.Maps. Non ho raccontato un pezzo. Torno indietro per aggiungere.

Slide – Google map. There's a command "DRAW_GMAPS" that draws the map. There’s also a command "DRAW_YMAPS," which can render Yandex.Map. Essentially, this command contains Javascript, allowing you to transfer data from ClickHouse into Javascript, which you will write here. What you get is an area where it should be rendered. You can plot any graph, such as any chart, a map, or even your own custom component. Previously, I used a different library for rendering charts.

So, there’s a tool for customizing the display functionality?

Any. You can take and repaint these points, turning them from red to blue or green.

Thank you for the presentation! You had a slide that presented alternative tools for querying ClickHouse for building dashboards and analytical reports. As I understand it, at the time you started working with ClickHouse, non sono stati scritti adattatori per questi strumenti. E mi chiedo perché abbiate deciso di creare il vostro strumento invece di scrivere un adattatore per uno strumento esistente? Penso che regolare un editor di test sia rapido. Perché avete deciso di fare così tanto lavoro?

C'è un aspetto interessante: io sono il direttore tecnico, non un data scientist. Al momento in cui abbiamo iniziato a implementare Druid, avevo nel roadmap circa il 50% delle attività – per esempio, contiamo questo o analizziamo quest'altro. Così abbiamo implementato ClickHouse. Ho iniziato a costruire tutto rapidamente, a contare, e ho chiuso rapidamente il mio roadmap. A quel punto ho realizzato che mi mancavano conoscenze in Data Science e visualizzazione dei dati. Tabix è una sorta di compito a casa per studiare la visualizzazione dei dati. Ho guardato come integrare Zeppelin. Non amo molto la sua programmazione. Ho considerato Redash, ma mi mancava un editor adeguato. E SuperSet è scritto in un linguaggio che non mi piace molto. Così ho deciso di costruire qualcosa di mio e questo è il risultato.

Igor, accetti il Pull request?

Sì.

Grazie mille per la presentazione! E due domande. La prima: non parli molto positivamente di Javascript. Hai scritto in puro Javascript o hai usato un framework?

Meglio in puro Javascript.

Quale framework?

Angular.

Capisco. E la seconda domanda. Hai mai considerato R e *Shiny??*

L'ho considerato. Ci ho giocato.

Si poteva anche semplicemente scrivere un adattatore.

Esiste. Sembra che la comunità l'abbia fatto, ma, come ho risposto alla domanda precedente, volevo provarlo io stesso.

*No, riguardo alla visualizzazione, c'è.

Dici che esiste una cosa del genere e ti disegna un grafico. Ho aperto un libro sulla visualizzazione dei dati. E ho pensato: 'Provare a visualizzare questi dati. Lo scriverò io affinché possa elaborare i dati'. E ho cominciato a comprendere meglio la tecnologia della presentazione dei dati. Se avessi preso un componente già pronto, personalmente avrei imparato peggio a usarlo, cioè proprio la visualizzazione. Ma così – sì, mi è piaciuto R, ma non ho ancora letto il libro 'R per negati'.

Grazie!

Domanda semplice. Ci sono modi per esportare rapidamente una tabella o un grafico?

Puoi esportare in CSV, in Excel.

Non dati, ma un tavolo pronto, un grafico pronto? Ad esempio, per mostrarlo alla direzione.

C'è un pulsante "Esporta" e c'è un pulsante "Esporta grafico in png, in jpg".

Grazie!

P.S. Mini-guida per l'installazione di tabix

  • Scarica ultima release
  • Decomprimere, copiare la directory build nel percorso root di nginx
  • Configurare nginx

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster