Sviluppo di un blocco personalizzato per Looker Marketplace

Questa pagina descrive come creare un blocco personalizzato che può essere aggiunto a Looker Marketplace e accessibile ad altri utenti di Looker.

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

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

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

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

Configurare e collegare l'origine dati a Looker.

I blocchi sono modelli di dati, quindi funzionano meglio quando sono progettati per un set di dati specifico e facilmente ripetibile. La maggior parte degli errori di installazione dei blocchi si verifica quando il set di dati dell'utente non corrisponde ai nomi di schema, tabella e campo nel 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 apportate al set di dati. Se possibile, mantieni al minimo tali personalizzazioni per semplificare l'installazione per i tuoi utenti. Fornisci istruzioni specifiche in un file README.
  • Se stai creando un blocco per un pattern analitico generale, ad esempio la fidelizzazione della coorte, prendi nota dei campi che prevedi contengano il set di dati dell'utente. Molto probabilmente, i tuoi utenti non avranno gli stessi nomi di schema, tabella e campo del tuo set di dati. Utilizza le costanti LookML per i nomi di tabelle e campi e informa l'utente di quali campi devono essere aggiornati in un file README.

Una volta determinata l'origine dati, connettila a Looker in modo da poter iniziare a creare i modelli. Se devi modificare una delle impostazioni di connessione predefinite, prendi nota del file README.

Creare un progetto e aggiungere i file richiesti

Crea un progetto per rappresentare il blocco. Ti consigliamo di utilizzare una convenzione di denominazione come
block-<database_dialect>-<role> (ad esempio, block-redshift-admin).

Quindi, crea i seguenti file nel progetto:

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

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

Creazione di un file manifest

Crea un file manifest per il tuo progetto. Il file manifest deve iniziare con un nome di progetto e poi definire alcune costanti LookML per gli utenti. Ad esempio, devi definire il nome della connessione di Looker come costante con export: override_required, in modo che gli utenti possano ignorarlo con il proprio nome di connessione.

Di seguito è riportato un file manifest di esempio:

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 viste ed esplorazioni

Crea un file view.lkml per ogni vista. Se i nomi di schema e tabella di un utente possono essere diversi dal tuo, assicurati di definire i nomi di schema e tabella come costanti nel file manifest in modo che gli utenti che scaricano il tuo blocco possano aggiornare i nomi di schema e tabella nel file manifest generato automaticamente. Successivamente, fai riferimento a queste costanti nei parametri sql_table_name delle 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}
  }

}

In seguito, crea uno o più file explore.lkml. Assicurati che ogni file di esplorazione includa le viste necessarie per quell'esplorazione. Progetta le tue esplorazioni in modo intelligente, perché contengano logiche di join, esercitazioni e pagine di esplorazione selezionate. Dopo che un altro utente ha installato il blocco dal Marketplace, per gli utenti aziendali dovrebbe essere facile iniziare e analizzare i dati.

Puoi trovare un elenco generale di best practice per la modellazione nel forum della community e nel Centro assistenza Looker, ad esempio Best Practice: DoML e Don'ts e Best Practice: Scrittura di LookML sostenibili e gestibili.

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 modello

Crea un file modello che includa tutti i file della vista, dell'esplorazione e della dashboard nel progetto. Assicurati che il nome della connessione venga fatto riferimento come costante LookML dal file manifest.

Definisci almeno un gruppo di dati per impostare un criterio di memorizzazione nella cache.

Ecco un esempio di file di 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 di dashboard LookML

Per essere inclusi in Looker Marketplace, ogni blocco deve includere almeno tre dashboard LookML che forniscono un'analisi utile e significativa. Le dashboard devono essere estetiche, funzionali e complete e non devono presentare dati sfocati.

Anche se non sono previsti 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 diversi tipi di visualizzazione (ad esempio valore singolo, barra e riga).

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

Consulta le pagine della documentazione sui parametri della dashboard e sui parametri degli elementi della dashboard per ulteriori informazioni sulla personalizzazione delle dashboard LookML e delle visualizzazioni all'interno delle dashboard LookML, rispettivamente. Consulta il file della dashboard di Lookshift amministratore Redshift del blocco di amministrazione Redshift per un esempio di file di dashboard LookML.

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 proprie esigenze. Il file marketplace.json deve contenere:

  • Campi label, category_label e branding del Marketplace
  • Un elenco di costanti LookML che gli utenti devono compilare per completare il modello LookML (ad esempio, i nomi delle connessioni)

Di seguito è riportato un file marketplace.json per il blocco del rendimento 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 BQ 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 BQ Optimization data (typically cloudaudit_googleapis_com_data_access_*)."
    }
  },
  "models": [
    {
      "name": "block_bigquery_optimization_v2",
      "connection_constant": "CONNECTION_NAME"
    }
  ]
}

Lo screenshot seguente mostra la scheda del Marketplace che verrà generata da questo file marketplace.json.

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

Creazione di un file LICENSE

Tutti i blocchi Looker devono essere concessi in licenza in base alla licenza open source MIT. Includi il testo di questa licenza in un file denominato LICENSE. Per visualizzare un esempio di file LICENSE, consulta il file Redshift Admin Block LICENSE.

Creazione di un file README

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

Aspetti da considerare per il file README:

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

File generati automaticamente

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

  • Un file marketplace_lock.lkml di sola lettura contenente informazioni sulla scheda del 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 sia il file refinements.lkml

Gli utenti che installano il blocco da Looker Marketplace possono utilizzare il file refinements.lkml per perfezionare il tuo LookML e anche aggiungere nuovi file LookML. Per ulteriori informazioni su come gli utenti possono personalizzare il blocco, consulta la pagina 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 di blocco possono essere modificate nel file manifest generato automaticamente oppure impostate dai tuoi utenti nell'interfaccia utente di download a blocchi.

Il file dei perfezionamenti

Il file refinements.lkml generato automaticamente consente agli utenti che installano il blocco di perfezionare le viste e le esplorazioni che sono definite del tuo blocco. Qui è dove gli utenti che scaricano il blocco eseguiranno la maggior parte della personalizzazione di LookML per adattarsi al proprio caso d'uso.

Di seguito è riportato 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 di blocco

Ospita il blocco LookML su un repository GitHub accessibile pubblicamente.

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

Invio del blocco per la revisione

Quando il blocco è pronto per l'invio, segui le istruzioni riportate nell'articolo Invio di contenuti a Looker Marketplace per creare la documentazione di supporto per il blocco, invia il blocco al team Looker per la revisione e pubblica il blocco su Looker Marketplace.