Développer un bloc personnalisé pour la place de marché Looker

Cette page explique comment créer un bloc personnalisé que vous pouvez ajouter à la place de marché Looker et auquel d'autres utilisateurs de Looker peuvent accéder.

Veuillez noter que vous devez être membre du réseau de partenaires Looker ou client Looker pour envoyer du contenu sur la place de marché Looker.

Pour en savoir plus sur les blocs Looker déjà créés et disponibles à l'utilisation, consultez la page de documentation Blocs Looker. Pour en savoir plus sur la personnalisation des blocs que vous avez installés depuis la place de marché, consultez la page de documentation Personnaliser les blocs de la place de marché Looker.

Pour développer un bloc et le rendre disponible à tous les utilisateurs de Looker via la place de marché Looker, suivez les étapes décrites sur cette page :

  1. Configurez et associez la source de données à Looker.
  2. Créez un projet et ajoutez les fichiers requis.
  3. Rendez votre bloc accessible.
  4. Envoyez votre bloc pour examen par Looker.

Configurer et connecter la source de données à Looker

Les blocs sont des modèles de données. Ils fonctionnent donc mieux lorsqu'ils sont conçus pour un ensemble de données spécifique et facilement reproductible. La plupart des erreurs d'installation de bloc se produisent lorsque l'ensemble de données de l'utilisateur ne correspond pas aux noms du schéma, de la table et des champs du bloc.

  • Si vous créez un bloc pour un ensemble de données spécifique, comme des données Google Analytics, notez tous les paramètres ou personnalisations que vous avez appliqués à l'ensemble de données. Dans la mesure du possible, limitez ces personnalisations au minimum pour simplifier l'installation pour vos utilisateurs. Fournissez des instructions spécifiques dans un fichier README.
  • Si vous créez un bloc pour un modèle analytique général, tel que la rétention des cohortes, notez les champs que contiendra l'ensemble de données de votre utilisateur. Il est probable que vos utilisateurs n'aient pas les mêmes noms de schéma, de table et de champ que dans votre ensemble de données. Utilisez des constantes LookML pour les noms de tables et de champs, et indiquez à l'utilisateur les champs qu'il doit mettre à jour dans un fichier README.

Une fois que vous avez déterminé votre source de données, connectez-la à Looker pour pouvoir commencer à modéliser. Si vous devez modifier l'un des paramètres de connexion par défaut, notez-le dans votre fichier README.

Créer un projet et ajouter les fichiers requis

Créez un projet pour représenter votre bloc. Pensez à utiliser une convention d'attribution de noms telle que block-<database_dialect>-<role> (par exemple, block-redshift-admin).

Ensuite, créez les fichiers suivants dans votre projet :

  • Un fichier manifeste qui définit le nom du projet, le nom de la connexion et d'autres constantes
  • Un fichier de vue pour chaque vue
  • Un fichier d'exploration pour chaque exploration
  • Un fichier de modèle qui inclut tous les fichiers de vue, les fichiers d'exploration et les fichiers de tableau de bord LookML du projet
  • Au moins trois fichiers de tableau de bord LookML
  • Un fichier marketplace.json contenant les informations qui s'afficheront sur la fiche Marketplace de ce bloc
  • Un fichier LICENSE incluant le texte de la licence Open Source MIT
  • Un fichier README qui détaille les instructions et les options de configuration

Les utilisateurs qui installent votre bloc peuvent affiner les explorations, les vues et les tableaux de bord de base dans un fichier refinements.lkml distinct. Les sections suivantes expliquent plus en détail chaque type de fichier requis :

Créer un fichier manifeste

Créez un fichier manifeste pour votre projet. Le fichier manifeste doit commencer par un nom de projet, puis définir des constantes LookML que vos utilisateurs pourront modifier. Par exemple, vous devez définir le nom de la connexion Looker comme une constante avec export: override_required afin que les utilisateurs puissent le remplacer par leur propre nom de connexion.

Voici un exemple de fichier manifeste :

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
}

Créer des fichiers de vue et d'exploration

Créez un fichier view.lkml pour chaque vue. Si les noms de schéma et de table d'un utilisateur peuvent différer des vôtres, veillez à les définir en tant que constantes dans votre fichier manifeste afin que les utilisateurs qui téléchargent votre bloc puissent modifier les noms de schéma et de table dans le fichier manifeste généré automatiquement. Ensuite, référencez ces constantes dans les paramètres sql_table_name de vos vues.

Voici un exemple de fichier view.lkml de bloc :

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}
  }

}

Ensuite, créez un ou plusieurs fichiers explore.lkml. Assurez-vous que chaque fichier d'exploration inclut les vues nécessaires à cette exploration. Créez des explorations réfléchies, avec des jointures logiques, des exercices et une sélection de pages d'exploration. Une fois qu'un autre utilisateur a installé le bloc depuis la place de marché, les utilisateurs professionnels devraient pouvoir l'utiliser facilement pour commencer à analyser leurs données.

Vous trouverez une liste générale des bonnes pratiques de modélisation sur le forum de la communauté et dans les bonnes pratiques Looker, telles que Bonnes pratiques : choses à faire et à ne pas faire avec LookML et Bonnes pratiques pour écrire un code LookML durable et facile à gérer.

Voici un exemple de fichier 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
  }
}

Créer un fichier de modèle

Créez un fichier de modèle qui inclut tous les fichiers de vue, d'exploration et de tableau de bord de votre projet. Assurez-vous que le nom de la connexion est référencé en tant que constante LookML dans votre fichier manifeste.

Définissez au moins un groupe de données pour définir une stratégie de mise en cache.

Voici un exemple de fichier de modèle:

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;;
}

Créer des fichiers de tableau de bord LookML

Pour être inclus dans la Marketplace Looker, chaque bloc doit inclure au moins trois tableaux de bord LookML qui fournissent des analyses pertinentes et utiles. Les tableaux de bord doivent être esthétiques, fonctionnels et complets, et ne doivent pas présenter de données floutées.

Bien qu'il n'existe aucune exigence de conception stricte pour les tableaux de bord LookML, Looker recommande les bonnes pratiques de conception générales suivantes:

  • Palette de couleurs cohérente dans l'ensemble du tableau de bord
  • Au moins sept vignettes
  • Au moins trois types de visualisation différents (par exemple, valeur unique, barre et courbe)

Les visualisations personnalisées ne sont pas compatibles avec le développement de tableaux de bord pour les blocs. Utilisez plutôt les types de visualisation natifs de Looker.

Pour en savoir plus sur la personnalisation des tableaux de bord LookML et des visualisations dans les tableaux de bord LookML, consultez les pages de documentation Paramètres de tableau de bord et Paramètres des éléments de tableau de bord. Consultez le fichier de tableau de bord LookML Admin de Redshift dans le bloc d'administration Redshift pour obtenir un exemple de fichier de tableau de bord LookML.

Créer un fichier marketplace.json

Créez un fichier marketplace.json pour indiquer comment la fiche doit s'afficher sur la place de marché. Chaque bloc du Marketplace Looker doit fournir ces informations supplémentaires pour aider les utilisateurs à sélectionner le bloc qui correspond le mieux à leurs besoins. Votre fichier marketplace.json doit contenir les éléments suivants :

  • Champs label, category_label et branding de la place de marché
  • Une liste des constantes LookML devant être renseignées par les utilisateurs pour renseigner le code LookML du modèle (par exemple, les noms des connexions)

Voici un exemple de fichier marketplace.json pour le bloc Google BigQuery Performance:

{
  "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"
    }
  ]
}

La capture d'écran suivante montre la fiche Marketplace qui serait générée à partir de ce fichier marketplace.json.

Exemple de fiche Marketplace

  • Le champ "label" contrôle le titre du bloc. Dans cet exemple, il s'agit des performances Google BigQuery.
  • Le champ "tagline" contrôle le premier paragraphe de la fiche Marketplace.
  • Le champ "image_uri" contrôle l'image affichée dans l'angle supérieur gauche de la fiche Marketplace. Dans cet exemple, il s'agit du logo Google Cloud.
  • Le champ "constants" invite les utilisateurs à renseigner leurs constantes dans l'interface utilisateur de Marketplace lors du processus d'installation. Dans cet exemple, trois constantes sont répertoriées dans le fichier marketplace.json (CONNECTION_NAME, SCHEMA_NAME et AUDIT_LOG_EXPORT_TABLE_NAME). L'utilisateur sera donc invité à spécifier des valeurs pour ces trois champs avant l'installation.

Créer un fichier LICENSE

Tous les blocs Looker doivent disposer d'une licence Open Source MIT. Incluez le texte de cette licence dans un fichier intitulé LICENSE. Consultez le fichier LICENSE de Redshift Admin pour obtenir un exemple de fichier LICENSE.

Créer un fichier README

Le fichier README doit contenir toutes les instructions d'implémentation du bloc et doit indiquer explicitement les endroits où des personnalisations sont nécessaires, par exemple dans le fichier manifeste généré automatiquement](#the_autogenerated_manifest_file) ou dans le fichier de raffinements. Consultez le fichier README du bloc README de Redshift pour obtenir un exemple de fichier README.

Éléments à prendre en compte pour votre fichier README :

  • De quelle source de données l'utilisateur a-t-il besoin ? Doivent-ils souscrire un abonnement ?
  • Quelles autorisations l'utilisateur de la base de données doit-il disposer ?
  • Quels sont les paramètres de connexion à Looker nécessaires ?
  • Les noms des champs du bloc correspondent-ils à ceux de l'ensemble de données de votre utilisateur ? Si ce n’est pas le cas, que doit-il changer ?

Fichiers générés automatiquement

Lorsque les utilisateurs installent votre bloc, leur instance Looker crée un projet Looker avec les fichiers de votre projet en lecture seule. Il génère également automatiquement les fichiers suivants pour votre utilisateur :

  • Fichier marketplace_lock.lkml en lecture seule contenant des informations sur la fiche de la place de marché
  • Fichier manifeste qui fait référence à la fiche de marketplace_lock.lkml
  • Un fichier refinements.lkml qui inclut toutes les vues et explorations de votre bloc
  • Un fichier de modèle en lecture seule qui inclut à la fois le fichier de modèle de votre bloc et le fichier refinements.lkml

Les utilisateurs qui installent votre bloc depuis la place de marché Looker peuvent utiliser le fichier refinements.lkml pour affiner votre LookML et même ajouter de nouveaux fichiers LookML. Consultez la page de documentation Personnaliser les blocs Marketplace Looker pour savoir comment les utilisateurs peuvent personnaliser votre blocage.

Fichier manifeste généré automatiquement

Le fichier manifeste généré automatiquement permet aux utilisateurs qui installent votre bloc de définir des variables telles que le nom de la connexion. Les constantes LookML définies dans le fichier manifeste de bloc peuvent être modifiées dans le fichier manifeste généré automatiquement ou définies par vos utilisateurs dans l'interface utilisateur de téléchargement de blocs.

Fichier des filtres

Le fichier refinements.lkml généré automatiquement permet aux utilisateurs qui installent votre bloc d'affiner les vues et les explorations définissant votre bloc. C'est là que les utilisateurs qui téléchargent votre bloc effectueront l'essentiel de la personnalisation LookML pour l'adapter à leur cas d'utilisation.

Voici un exemple de fichier refinements.lkml généré automatiquement :

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"
\#     }
\#

Rendre le projet de bloc accessible

Hébergez votre LookML de bloc sur un dépôt GitHub accessible au public.

Tous les Looker Blocks doivent être sous licence MIT Open Source License, et le texte de la licence doit être inclus dans un fichier LICENSE du dépôt.

Envoyer le blocage pour examen

Une fois que votre bloc est prêt à être envoyé, suivez les instructions de la section Envoyer du contenu sur Looker Marketplace pour créer la documentation associée à votre bloc, l'envoyer à l'équipe Looker pour examen et le publier sur Looker Marketplace.