Yellowfin Evaluation Guide

Yellowfin is used for both enterprise analytics and embedded analytics use cases and for building bespoke analytical applications. Use this guide to ensure Yellowfin is the right technical fit for your requirements.

eval colourful guide banner

Panoramica sull’implementazione

  • In this section

    Updated 25 Maggio 2020
  • Panoramica

    Quali sono le opzioni di distribuzione supportate da Yellowfin?

    Yellowfin è agnostico rispetto alla piattaforma: puoi distribuirlo ovunque tu voglia. Sia on-premise che nel cloud. Puoi scegliere qualsiasi sistema operativo, purché supporti una JVM. Hai anche un’ampia gamma di scelte per il database di configurazione.
    Molti clienti scelgono di distribuire Yellowfin utilizzando tecnologie di container come Docker.

    Quali fornitori di cloud possono essere utilizzati con Yellowfin?

    Yellowfin funziona con tutti i principali provider di cloud, tra cui AWS, Azure, GCP e altri ancora.

  • Ambienti

    Su quali piattaforme gira Yellowfin?

    Yellowfin può essere installato su desktop o laptop basati su Windows, Linux o Mac OSX per scopi di valutazione o formazione e installato su server basati su Windows, Linux o Mac OSX per scopi di valutazione, formazione e produzione.

    Ulteriori letture:

    Qual è l’architettura?

    Di quanta capacità avrò bisogno e quali sono i prerequisiti?

  • Database

    Dove vengono memorizzati i dati di configurazione di Yellowfin?

    I dati di configurazione sono memorizzati nel database Yellowfin, che viene creato come parte del processo di installazione standard. Durante l’installazione, si definiscono la posizione, il tipo e i dettagli di connessione di questo database.

    Quali scelte di database ho a disposizione?

    La configurazione Yellowfin può essere ospitata su una serie di database

    L’elenco completo dei prodotti supportati è disponibile qui

  • Cloud e On-Premise

    Quali piattaforme cloud supporta Yellowfin?

    Yellowfin funziona con tutti i principali provider di cloud, tra cui AWS, Azure, GCP e altri ancora.

    Posso scegliere di funzionare on-premise?

    Yellowfin può essere distribuito in qualsiasi ambiente, in quanto è agnostico rispetto al sistema operativo e auto-ospitato. Può spaziare da server fisici su una rete interna privata a servizi di container cloud altamente dinamici come AWS ECS o Kubernetes.

    In che modo Yellowfin supporta Docker e la containerizzazione?

    Nelle distribuzioni docker, il container stesso conterrà singoli server applicativi che agiscono come nodi del cluster, comunicando con un database di configurazione statico (spesso situato in qualcosa come AWS RDS). L’applicazione viene poi scalata orizzontalmente distribuendo altri container.

  • Hosting

    Un servizio di hosting completamente gestito per Yellowfin è disponibile in tutte le regioni. I servizi di hosting ti permettono di implementare Yellowfin rapidamente, senza i costi e le distrazioni di assumere o formare il tuo personale. Per ulteriori informazioni, contatta il tuo rappresentante Yellowfin.

  • Distribuzione e sincronizzazione regionale

    Come posso distribuire Yellowfin in regioni geograficamente diverse? Quali modelli sono supportati?

    È possibile implementare Yellowfin a livello globale, con diversi modelli di implementazione.

    Per consentire l’amministrazione locale di utenti e gruppi, è possibile distribuire a livello regionale istanze separate di Yellowfin che danno accesso agli stessi contenuti dei report. Ciò richiede la sincronizzazione dei contenuti tra le varie istanze. Gli amministratori locali possono gestire gli utenti locali e il loro accesso ai contenuti condivisi.

    Un’unica istanza globale di Yellowfin può essere distribuita in una regione centrale, ma con entry point regionali separati. Ogni punto di ingresso memorizza nella cache i contenuti statici della regione, inoltrando al server solo le richieste di contenuti dinamici. La presenza di un’unica istanza centrale (che potrebbe essere raggruppata nello stesso datacenter) significa che non è necessaria la migrazione dei contenuti e che gli aggiornamenti sono relativamente semplici. I punti di ingresso globali in questo modello possono essere implementati con un server web con regole specifiche di proxying e caching. I servizi DNS basati sulla localizzazione possono indirizzare gli utenti verso il punto di accesso regionale più vicino quando si utilizza un URL comune.

    È anche possibile implementare un cluster globale di Yellowfin con application server posizionati a livello regionale, con copie locali del database del repository di Yellowfin. Questo metodo di distribuzione si basa su un cluster di database multi-scrittura, che consente ai nodi distribuiti di Yellowfin di condividere lo stesso database del repository. Yellowfin supporta il database del repository TiDB per questo tipo di distribuzione.

  • Internazionalizzazione

    Yellowfin supporta le implementazioni multilingue?

    Yellowfin supporta implementazioni multilingue in cui utenti diversi possono utilizzare lingue specifiche all’interno della stessa istanza. La selezione della lingua dell’utente può essere ereditata dal suo browser internet o dalle impostazioni del profilo all’interno dell’applicazione.

    Yellowfin supporta i set di caratteri a doppio Byte?

    Sì, l’interfaccia di Yellowfin è abilitata al doppio byte. Gli utenti possono anche scegliere set di caratteri specifici per l’esportazione dei contenuti, ad esempio in PDF, per garantire che vengano generati contenuti leggibili.

    Quali sono le lingue supportate da Yellowfin?

    Al momento sono supportate le seguenti lingue:

    • Inglese
    • Spagnolo
    • Francese
    • Giapponese
    • Cinese semplificato
    • Tedesco
    • Portoghese brasiliano
    • Italiano
    • Olandese

    Controlla la nostra offerta di supporto per gli aggiornamenti

    Posso tradurre dinamicamente i contenuti in base alla lingua preferita dall’utente?

    Yellowfin dispone di un meccanismo che consente di tradurre i contenuti nelle lingue supportate dall’istanza dell’applicazione. Ciò consente di visualizzare i meta-dati dei contenuti, come i titoli dei report, le descrizioni dei report e i nomi dei campi, nella lingua preferita dall’utente. La traduzione di questi contenuti può essere effettuata tramite un processo di esportazione/importazione in blocco.

    Scopri di più qui

    I formati delle date possono essere modificati dinamicamente per adattarsi al locale dell’utente?

    Sì, i formati delle date possono essere resi in modo diverso a seconda della località e delle preferenze personali.

    Posso cambiare dinamicamente le unità di misura (ad esempio da miglia a km) in base al profilo dell’utente?

    Sì, puoi creare filtri dinamici nel livello dei metadati e applicarli alle tabelle in modo da mostrare le metriche nel formato preferito dall’utente.

    Questo può essere utilizzato per:
    Convertire gli importi delle vendite nella valuta preferita da una persona
    Convertire il volume o la distanza nei formati preferiti, ecc.

    Leggi qui

    Quali elementi di Yellowfin possono essere configurati per ogni regione applicabile?

    Yellowfin consente di tradurre i meta-dati di fonti di dati, report, dashboard e viste nelle lingue supportate. Altre impostazioni regionali consentono di configurare il fuso orario e i formati di data e ora in base al locale dell’utente.

    Leggi qui

  • Alta disponibilità

    Come posso clusterizzare Yellowfin per garantire l’alta disponibilità?

    Yellowfin può essere raggruppato in cluster sovrapponendo più application server a un unico database di configurazione condiviso. I nodi applicativi possono risiedere ovunque tu scelga, purché siano in grado di comunicare tra loro. Inoltre, è possibile configurare ogni nodo del cluster per l’esecuzione di attività specifiche, consentendoti di dedicare i server a processi ad alte risorse come i segnali o le trasmissioni.

    Ulteriori letture:

    Guida al clustering Yellowfin

    Yellowfin Disaster Recovery

    Come funziona la licenza

    Yellowfin fornisce un unico file di licenza che viene caricato attraverso l’interfaccia utente dell’applicazione (è possibile farlo anche attraverso WS). Una volta applicata la licenza, i parametri di licenza vengono memorizzati nel database di configurazione condiviso. Quando i nuovi nodi dell’applicazione si connettono al database, si confrontano con la licenza memorizzata.

  • Aggiornamenti

    Con quale frequenza Yellowfin rilascia nuove versioni

    Yellowfin rilascia aggiornamenti “minori” all’applicazione su base trimestrale e aggiornamenti “maggiori” ogni anno. Le versioni minori contengono piccoli miglioramenti, modifiche e correzioni, mentre le versioni maggiori presentano cambiamenti più consistenti sotto forma di funzionalità nuove o rielaborate.

    Come fa Yellowfin a gestire gli aggiornamenti?

    Essendo una soluzione self-hosted, gli aggiornamenti sono programmati e gestiti da te. Gli aggiornamenti vengono eseguiti scaricando un’applicazione eseguibile dal sito web di Yellowfin e puntando tale applicazione alla tua attuale installazione di Yellowfin, dove eseguirà automaticamente gli aggiornamenti dello schema e dell’applicazione necessari.

    Quali sono le migliori pratiche per gestire gli aggiornamenti?

    Quando esegui un aggiornamento, ti consigliamo di testare il processo in un ambiente di sviluppo. Sebbene gli aggiornamenti di Yellowfin siano generalmente semplici, in questo modo avrai l’opportunità di verificare le modifiche e di limitare l’accesso alle nuove funzionalità prima del loro rilascio alla comunità degli utenti.

    Ti consigliamo inoltre di eseguire prima un backup sia del database di configurazione che del server delle applicazioni, in quanto questo ci consentirà di effettuare facilmente un roll-back qualora fosse necessario.

    Ho un ambiente clusterizzato 24 ore su 24, 7 giorni su 7, come posso effettuare l’aggiornamento senza interruzioni?

    Su un server a singolo nodo, è necessario spegnere l’applicazione Yellowfin prima di effettuare l’aggiornamento. Tuttavia, in un ambiente cluster siamo in grado di offrire aggiornamenti senza tempi morti, grazie al rolling dell’aggiornamento su tutti i nodi dell’applicazione. Mantenendo due copie del database di configurazione, una per ogni versione, possiamo spegnere e riaccendere costantemente i nodi, migrandoli/aggiornandoli alla versione più recente, senza che gli utenti se ne accorgano.

  • Debug e audit

    Essendo una soluzione autogestita, è necessario che i nostri clienti abbiano un quadro chiaro di ciò che accade all’interno della loro istanza e di dove guardare quando le cose vanno male. Per facilitare questo aspetto, Yellowfin mette a disposizione diverse risorse sia all’interno che all’esterno dell’applicazione.

    Monitoraggio dell'utilizzo

    Il database di configurazione di Yellowfin conserva un registro non solo dei contenuti e degli utenti attualmente presenti nell’applicazione, ma anche degli eventi che si sono verificati. Interrogando questo database siamo in grado di ottenere un quadro chiaro di come viene utilizzata l’applicazione.

    A tal fine Yellowfin fornisce un set importabile di “Audit Content”, che è essenzialmente una raccolta di viste e report precostituiti progettati per rispondere alle domande più comuni che un tipico amministratore di Yellowfin può avere sulla propria istanza:

    • Quali sono i report più popolari?
    • Quanti utenti si sono collegati oggi?
    • Quali contenuti sono stati creati e cancellati di recente?
    • Quali sono le tabelle e le colonne a cui uno specifico utente ha avuto accesso?

    Ho dei dati sensibili, posso ottenere un registro di tutti i dati a cui un utente ha avuto accesso?

    Per impostazione predefinita, Yellowfin non memorizza i dati dei report. Tuttavia, è possibile configurare Yellowfin in modo da memorizzare il set di risultati di tutti i report eseguiti insieme a una registrazione dell’utente che li ha eseguiti e a che ora, fornendo così una chiara cronologia di audit di tutte le transazioni di dati.

    Quali metriche del server devo monitorare per scalare il server Yellowfin?

    Quando scalerai l’applicazione Yellowfin, dovrai monitorare due metriche principali:

    CPU – Ogni processo in Yellowfin consuma un thread, quindi il numero di processi che possono essere eseguiti in un determinato momento è determinato dal numero di thread disponibili sulla CPU. Più utenti sono presenti nell’applicazione, più thread saranno consumati dalle loro attività. Questo si riflette direttamente sull’utilizzo della CPU del server. Una volta che l’utilizzo della CPU si avvicina al limite, le richieste aggiuntive verranno ritardate e gli utenti noteranno un netto calo delle prestazioni.

    Memoria – Molti processi di Yellowfin consumano la memoria dell’applicazione, proporzionalmente alla dimensione dei dati elaborati e alla quantità di lavoro che deve essere svolto su tali dati. Quando Yellowfin si avvicina al limite della memoria allocata alla JVM, dovrà lavorare di più per liberare spazio per altri processi e potrebbe bloccarsi.

    Monitoraggio delle prestazioni

    Le prestazioni di Yellowfin sono composte da diversi fattori, per cui monitorare le prestazioni significa esaminare singolarmente ciascuno di questi componenti.

    Quanto sono veloci i rapporti di Yellowfin?

    Essendo un’applicazione a lettura diretta, la velocità di un report Yellowfin si basa essenzialmente su due fattori:

    1. Quanto tempo impiega la query
      Ogni esecuzione di un report consiste in almeno una query al database e il tempo che il database impiega per elaborare la query influisce direttamente sul tempo di rendering all’interno di Yellowfin.
    2. Quanto è grande il set di risultati e quanta post-elaborazione avviene su quel set di risultati
      L’elaborazione successiva di un report dopo la restituzione della query, come le funzioni avanzate e i grafici, viene eseguita in Java e consumerà risorse sul server in base alla complessità del report.

    Come faccio a monitorare i report in esecuzione?

    Il contenuto dell’audit di Yellowfin contiene diversi report utili che possono essere utilizzati per monitorare e ottimizzare l’utilizzo dei report. Questo include una registrazione di tutti i report eseguiti e le informazioni chiave relative all’esecuzione, tra cui il numero di righe restituite e il tempo di elaborazione della query.

    Come posso limitare gli utenti a creare query che richiedono molte risorse?

    Per evitare che le query vengano eseguite a lungo, puoi impostare un timeout sul tuo database. L’impostazione predefinita è di 3 minuti.

    Per evitare set di risultati eccessivamente grandi, puoi porre un limite di righe a tutte le query su quel database.

    Inoltre, la maggior parte dei contenuti può essere creata con “dati fittizi” piuttosto che con dati reali, limitando il numero di volte in cui la query del report deve essere eseguita.

    Per saperne di più sulle limitazioni delle fonti di dati, leggi qui

    È possibile programmare l’esecuzione di attività in background in momenti di scarso utilizzo?

    Tutte le attività in background di Yellowfin vengono eseguite in base a un programma prestabilito, in genere definito al momento della creazione dell’attività. Queste pianificazioni possono essere effettuate attraverso la pagina “gestione delle pianificazioni” della console di amministrazione, consentendoti di ottimizzare i tempi di esecuzione dei processi ad alte risorse.

    Posso interrompere i processi in corso da tempo?

    Tutti i processi in background in corso da tempo possono essere interrotti dalla pagina “Esecuzione in background” della console di amministrazione.

    Gli utenti che avviano processi di lunga durata all’interno dell’applicazione hanno la possibilità di annullare la richiesta in qualsiasi momento.

    Per saperne di più sulla coda di esecuzione in background, leggi qui

    Debug e registrazione degli errori

    A volte le cose vanno male e, nella maggior parte dei casi, Yellowfin fornisce un chiaro errore che ne indica il motivo. Per le altre volte, il primo posto in cui suggeriamo di cercare è nei file di log. Ogni server Yellowfin ha una cartella chiamata “/appserver/logs” che contiene diversi file che tengono traccia dei vari componenti dell’applicazione. I registri generali sono memorizzati nel file principale “yellowfin.log”.

    Questi log possono essere modificati per mostrare più o meno informazioni configurando il file delle proprietà di log4j.

    Posso inoltrare i miei log a un programma di monitoraggio come datadog o splunk?

    In un ambiente clusterizzato è comune utilizzare un servizio di log forwarding (aws cloud watch, splunk forwarding, ecc.) per consentire l’analisi degli errori su tutti i nodi dell’applicazione contemporaneamente.