Sviluppo di un blocco personalizzato per Looker Marketplace

In questa pagina viene descritto come creare un blocco personalizzato che possa essere aggiunto a Looker Marketplace e accessibile da altri utenti di Looker.

Tieni presente che devi essere un membro della rete di partner di Looker o un cliente di Looker per inviare contenuti a Looker Marketplace.

Per informazioni sui blocchi Looker già creati e disponibili per l'uso, consulta la pagina della documentazione relativa ai blocchi Looker. Per informazioni sulla personalizzazione dei blocchi installati da Marketplace, vedi la pagina della documentazione Personalizzazione dei blocchi di Looker Marketplace.

Per sviluppare un blocco e renderlo disponibile a tutti gli utenti di Looker tramite Looker Marketplace, segui i passaggi descritti in questa pagina:

  1. Configura e connetti l'origine dati a Looker.
  2. Crea un progetto e aggiungi i file richiesti.
  3. Rendi accessibile il blocco.
  4. Invia il blocco per la revisione di Looker.

Configurazione e connessione dell'origine dati a Looker

I blocchi sono modelli di dati, quindi funzionano al meglio quando sono progettati per un set di dati specifico e facilmente ripetibile. La maggior parte degli errori di installazione a blocchi si verifica quando il set di dati dell'utente non corrisponde ai nomi dello schema, della tabella e dei campi del blocco.

  • Se stai creando un blocco per un set di dati specifico, ad esempio i dati di Google Analytics, prendi nota delle impostazioni o delle personalizzazioni che hai apportato al set di dati. Se possibile, riduci al minimo queste personalizzazioni per semplificare l'installazione per gli utenti. Fornisci istruzioni specifiche in un file README.
  • Se stai creando un blocco per un modello di analisi generale, come la fidelizzazione della coorte, prendi nota dei campi che ti aspetti siano contenuti nel set di dati dell'utente. Molto probabilmente, i tuoi utenti non avranno lo stesso schema, tabella e nomi di campo che hanno nel tuo set di dati. Utilizza le costanti LookML per i nomi di tabelle e campi e indica all'utente quali campi devono essere aggiornati in un file README.

Una volta determinata l'origine dati, connettila a Looker per iniziare a creare modelli. Se devi modificare una qualsiasi delle impostazioni di connessione predefinite, prendi nota del tuo file README.

Creazione di un progetto e aggiunta dei file richiesti

Crea un progetto per rappresentare il tuo blocco. Prendi in considerazione l'utilizzo di una convenzione di denominazione come block-<database_dialect>-<role> (ad esempio, block-redshift-admin).

A questo punto, crea i seguenti file nel tuo progetto:

  • Un file manifest che definisce il nome del progetto, della connessione e qualsiasi altra costante
  • Un file di visualizzazione per ciascuna visualizzazione
  • Un file dell'esplorazione per ogni esplorazione
  • Un file del modello che include tutti i file di visualizzazione, i file dell'esplorazione e i file della dashboard LookML nel progetto
  • Almeno tre file di dashboard LookML.
  • Un file marketplace.json contenente informazioni che verranno visualizzate nella scheda di Marketplace per questo blocco
  • Un file LICENSE che includa il testo della licenza open source MIT
  • Un file README che descrive in dettaglio le istruzioni e le opzioni di configurazione

Gli utenti che installano il tuo blocco possono perfezionare le esplorazioni, le visualizzazioni e le dashboard di base in un file refinements.lkml separato. Le seguenti sezioni illustrano in modo più dettagliato ogni tipo di file richiesto:

Creazione di un file manifest

Crea un file manifest per il progetto. Il file manifest deve iniziare con un nome di progetto e quindi definire alcune costanti LookML che gli utenti possono modificare. Ad esempio, è necessario definire il nome della connessione Looker come costante con export: override_required, in modo che gli utenti possano sostituirlo con il proprio nome di connessione.

Di seguito è riportato un esempio di file manifest:

project_name: "block-ga-360"

################# Constants ################

## Used in google_analytics_block.model connection param
constant: CONNECTION_NAME {
  value: "looker-private-demo"
  export: override_required
}

## Used in ga_sessions.view sql_table_name
constant: SCHEMA_NAME {
  value: "bigquery-public-data.google_analytics_sample"
  export: override_optional
}

constant: GA360_TABLE_NAME {
  value: "ga_sessions_*"
  export: override_optional
}

Creazione di file di visualizzazione ed esplorazione

Crea un file view.lkml per ogni visualizzazione. Se lo schema e i nomi delle tabelle di un utente potrebbero essere diversi dai tuoi, assicurati di definire i nomi dello schema e delle tabelle come constants nel file manifest, in modo che gli utenti che scaricano il blocco possano aggiornare i nomi dello schema e della tabella nel file manifest generato automaticamente. Poi, fai riferimento a queste costanti nei parametri sql_table_name delle tue viste.

Ecco un esempio di file di blocco view.lkml:

view: user_facts {

  # SCHEMA_NAME and GA360_TABLE_NAME are constants
  sql_table_name: @{SCHEMA_NAME}.@{GA360_TABLE_NAME} ;;

  dimension: clientID {
    type: string
    sql: ${TABLE.clientId}
  }

}

A questo punto, crea uno o più file explore.lkml. Assicurati che ogni file di esplorazione includa le visualizzazioni necessarie per l'esplorazione. Progetta le tue esplorazioni con cura per contenere unioni logici, analisi dettagliate e pagine Esplora selezionate. Dopo che un altro utente installa il blocco dal Marketplace, gli utenti aziendali dovrebbero iniziare ad analizzare facilmente i propri dati.

Puoi trovare un elenco generale di best practice per la creazione di modelli nel nostro forum della community e nelle best practice di Looker, ad esempio Best practice: cosa fare e non fare con LookML e Best practice: scrivere LookML sostenibile e gestibile.

Ecco un esempio di file explore.lkml:

include: "/Google_Analytics/Sessions/*.view.lkml"

explore: future_input {
  view_label: "Audience Traits"
  label: "BigQuery ML Customer Likelihood to Purchase"
  description: "This explore allows you to slice and dice likeliness to purchase scores by different customer traits to see how they differ. The default range of data you are looking at is in the past 30 days"
  join: future_purchase_prediction {
    type: left_outer
    sql_on: ${future_purchase_prediction.clientId} = ${future_input.client_id} ;;
    relationship: one_to_one
  }
}

Creazione di un file del modello

Crea un file del modello che includa tutti i file di visualizzazione, esplorazione e dashboard nel tuo progetto. Assicurati che il nome della connessione sia indicato come costante LookML nel file manifest.

Definisci almeno un datagroup per impostare un criterio di memorizzazione nella cache.

Ecco un esempio di file del modello:

connection: "@{CONNECTION_NAME}"

include: "/views/*.view.lkml"
include: "/explores/*.explore.lkml"
include: "/dashboards/*.dashboard.lookml"

datagroup: nightly {
  sql_trigger: SELECT TIMEZONE('US/Pacific',GETDATE())::DATE;;
}

Creazione di file della dashboard LookML in corso...

Per l'inclusione in Looker Marketplace, ogni blocco deve includere almeno tre dashboard LookML che forniscono analisi utili e significative. Le dashboard devono essere estetiche, funzionali e complete e non devono presentare dati sfocati.

Anche se non esistono requisiti di progettazione rigidi per le dashboard LookML, Looker consiglia queste best practice generali di progettazione:

  • Tavolozza dei colori coerente in tutta la dashboard
  • Almeno sette riquadri
  • Almeno tre tipi di visualizzazione diversi (ad es. valore singolo, barra e linea)

Le visualizzazioni personalizzate non sono supportate durante lo sviluppo di dashboard per blocchi. Utilizza i tipi di visualizzazione nativi di Looker.

Consulta le pagine della documentazione relative ai parametri della dashboard e ai parametri degli elementi della dashboard per saperne di più sulla personalizzazione rispettivamente delle dashboard LookML e delle visualizzazioni all'interno delle dashboard LookML. Per un esempio di file della dashboard LookML, vedi il file della dashboard LookML dell'amministratore di Redshift dal blocco amministratore di Redshift.

Creazione di un file marketplace.json in corso...

Crea un file marketplace.json per fornire informazioni su come deve essere visualizzata la scheda nel Marketplace. Ogni blocco in Looker Marketplace deve fornire queste informazioni aggiuntive per aiutare gli utenti a selezionare il blocco più adatto alle loro esigenze. Il file marketplace.json deve contenere:

  • Campi del marketplace label, category_label e branding
  • Un elenco di constants LookML che dovranno essere compilate dagli utenti per completare il modello LookML, ad esempio i nomi delle connessioni.

Ecco un esempio di file marketplace.json per il blocco Performance di Google BigQuery:

{
  "label": "Google BigQuery Performance",
  "category_label": "Models",
  "branding": {
    "image_uri": "https://marketplace-api.looker.com/block-icons/google-cloud.png",
    "tagline": "This Block provides a comprehensive overview of all cost and performance data for one or multiple BigQuery projects, enabling users to effectively monitor BigQuery usage down to a per user level. It can be used to set up alerts to long running or high cost queries."
  },

  "constants": {
    "CONNECTION_NAME": {
      "label": "Connection Name",
      "value_constraint": "connection"
    },
    "SCHEMA_NAME": {
      "label": "Schema Name"
    },
    "AUDIT_LOG_EXPORT_TABLE_NAME": {
      "label": "Audit Log Export Table Name",
      "description": "The table name of your BigQuery Optimization data (typically cloudaudit_googleapis_com_data_access_*)."
    }
  },
  "models": [
    {
      "name": "block_bigquery_optimization_v2",
      "connection_constant": "CONNECTION_NAME"
    }
  ]
}

Il seguente screenshot mostra la scheda di Marketplace generata da questo file marketplace.json.

Un esempio di scheda Marketplace.

  • Il campo "label" controlla il titolo del blocco. In questo esempio, si tratta di Prestazioni di Google BigQuery.
  • Il campo "tagline" controlla il primo paragrafo della scheda di Marketplace.
  • Il campo "image_uri" controlla l'immagine visualizzata nell'angolo in alto a sinistra della scheda del Marketplace. In questo esempio, si tratta del logo di Google Cloud.
  • Il campo "constants" richiede agli utenti di compilare le proprie costanti nell'interfaccia utente di Marketplace durante il processo di installazione. In questo esempio, nel file marketplace.json sono elencate tre costanti (CONNECTION_NAME, SCHEMA_NAME e AUDIT_LOG_EXPORT_TABLE_NAME), pertanto all'utente verrà chiesto di specificare i valori per questi tre campi prima dell'installazione.

Creazione di un file LICENSE

Tutti i Looker Blocks devono essere concessi in base alla licenza open source MIT. Includi il testo di questa licenza in un file denominato LICENSE. Vedi il file Redshift Admin Block LICENSE per un esempio di file LICENSE.

Creazione di un file README in corso...

Il file README deve contenere tutte le istruzioni per l'implementazione del blocco e deve identificare esplicitamente dove sono necessarie eventuali personalizzazioni, ad esempio nel file manifest generato automaticamente](#the_autogenerate_manifest_file) o nel file dei miglioramenti. Per un esempio di file README, vedi il file README del blocco amministrativo di Redshift.

Aspetti da considerare per il README:

  • Di quale origine dati ha bisogno l'utente? Dovrà pagare per un abbonamento?
  • Quali autorizzazioni deve avere l'utente del database?
  • Quali impostazioni di connessione di Looker sono necessarie?
  • I nomi dei campi del blocco corrisponderanno ai nomi dei campi nel set di dati dell'utente? In caso contrario, cosa dovrebbe cambiare l'utente?

File generati automaticamente

Quando gli utenti installano il tuo blocco, la loro istanza Looker crea un nuovo progetto Looker con i file del progetto come file di sola lettura. Inoltre, verranno generati automaticamente i seguenti file per l'utente:

  • Un file marketplace_lock.lkml di sola lettura contenente informazioni sulle schede di marketplace
  • Un file manifest che fa riferimento alla scheda da marketplace_lock.lkml
  • Un file refinements.lkml che include tutte le visualizzazioni e le esplorazioni del blocco
  • Un file modello di sola lettura che include sia il file modello del blocco che il file refinements.lkml

Gli utenti che installano il tuo blocco da Looker Marketplace possono utilizzare il file refinements.lkml per perfezionare il codice LookML e persino aggiungere nuovi file LookML. Per saperne di più su come gli utenti possono personalizzare il tuo blocco, consulta la pagina della documentazione relativa alla personalizzazione dei blocchi di Looker Marketplace.

Il file manifest generato automaticamente

Il file manifest generato automaticamente consente agli utenti che installano il blocco di impostare variabili come il nome della connessione. Le costanti LookML definite nel file manifest dei blocchi possono essere modificate nel file manifest generato automaticamente oppure impostate dagli utenti nell'interfaccia utente per il download a blocchi.

Il file dei perfezionamenti

Il file refinements.lkml generato automaticamente consente agli utenti che installano il tuo blocco di perfezionare le visualizzazioni e le esplorazioni definite al blocco. È qui che gli utenti che scaricano il tuo blocco eseguiranno la maggior parte della personalizzazione di LookML per adattarsi al loro caso d'uso.

Ecco un esempio di file refinements.lkml generato automaticamente:

include: "//ga360-v2/**/*.view.lkml"
include: "//ga360-v2/**/*.explore.lkml"

\# Use LookML refinements to refine views and explores that are defined in the remote project.
\# Learn more at: https://docs.looker.com/data-modeling/learning-lookml/refinements
\#
\#
\# For example we could add a new dimension to a view:
\#     view: +flights {
\#       dimension: air_carrier {
\#         type: string
\#         sql: ${TABLE}.air_carrier ;;
\#       }
\#     }
\#
\# Or apply a label to an explore:
\#     explore: +aircraft {
\#       label: "Aircraft Simplified"
\#     }
\#

Rendere accessibile il progetto a blocchi

Ospita il tuo blocco LookML su un repository GitHub accessibile pubblicamente.

Tutti i blocchi Looker devono essere concessi in licenza ai sensi della licenza open source MIT e il testo della licenza deve essere incluso in un file LICENSE nel repository.

Invio del blocco per la revisione

Una volta che il blocco è pronto per l'invio, segui le istruzioni riportate in Inviare contenuti a Looker Marketplace per creare la documentazione di supporto per il tuo blocco, invialo al team Looker per la revisione e pubblicalo in Looker Marketplace.