La couche de modélisation sémantique LookML de Looker permet à un analyste de données de définir des dimensions, des agrégations, des calculs et des relations entre les données dans une base de données SQL. Les modèles LookML permettent la réutilisation du code et l'intégration de Git. Un modèle LookML bien structuré permet aux utilisateurs d'explorer les données et de générer des rapports en libre-service.
Le modèle LookML est la base de toutes les données demandées à Looker, que cette demande provienne de l'interface Looker Explore dans l'UI Looker, d'une visualisation intégrée dans le portail de votre entreprise ou une autre application tierce, ou d'une application personnalisée développée avec l'API Looker. L'interface Open SQL permet d'accéder aux modèles LookML depuis n'importe quelle application tierce compatible avec Java Database Connectivity (JDBC). Les applications peuvent se connecter à un modèle LookML comme s'il s'agissait d'une base de données. Les utilisateurs peuvent ainsi profiter de tout le travail effectué par leurs analystes de données dans le modèle LookML, tout en utilisant les outils avec lesquels ils sont le plus à l'aise.
Comment l'interface Open SQL affiche les éléments du projet LookML
Pour comprendre comment l'interface Open SQL affiche les éléments d'un projet LookML, il est important de comprendre la structure des projets LookML.
Un projet LookML est un ensemble de fichiers qui décrivent les objets, les connexions de base de données et les éléments d'interface utilisateur utilisés pour exécuter des requêtes SQL dans Looker (pour en savoir plus, consultez Termes et concepts LookML). Les concepts de projet LookML suivants sont liés à l'interface Open SQL :
- Un modèle LookML spécifie une connexion de base de données et une ou plusieurs explorations. L'interface Open SQL présente les modèles sous forme de schémas de base de données.
- Une exploration est un regroupement logique d'une ou de plusieurs vues et des relations de jointure entre ces vues. L'interface Open SQL présente les explorations sous forme de tables de base de données.
- Une vue définit une collection de champs (dimensions et mesures). Une vue est généralement basée sur une table de votre base de données ou sur une table dérivée. Les vues peuvent contenir les colonnes de la table de base de données sous-jacente, ainsi que les dimensions ou mesures personnalisées dont vos utilisateurs finaux peuvent avoir besoin. L'interface Open SQL affiche la combinaison d'un nom de vue et d'un nom de champ en tant que nom de colonne de base de données. Par exemple, la dimension
id
de la vueorder_items
est exposée par l'interface Open SQL en tant que colonne de base de données appeléeorder_items.id
.
Une exploration Looker peut définir des relations de jointure entre plusieurs vues. Étant donné qu'il est possible qu'une vue comporte un champ portant le même nom qu'un champ d'une autre vue, l'interface Open SQL inclut à la fois le nom de la vue et le nom du champ lorsqu'elle fait référence à une colonne. Par conséquent, utilisez ce format pour faire référence à un nom de colonne lorsque vous envoyez des requêtes à l'interface Open SQL :
`<view_name>.<field_name>`
Par exemple, si une exploration nommée order_items
joint une vue appelée customer
à une vue appelée product
et que ces deux vues comportent une dimension id
, vous devez faire référence aux deux champs id
en tant que `customer.id`
et `product.id`
, respectivement. Pour utiliser le nom complet avec le nom de l'exploration, vous devez faire référence aux deux champs comme `order_items`.`customer.id`
et `order_items`.`product.id`
. (Pour savoir où placer les accents graves lorsque vous faites référence à des identifiants de base de données, consultez Utiliser des accents graves autour des identifiants de base de données.)
Configurer l'interface Open SQL
Pour utiliser l'interface Open SQL, procédez comme suit :
- Vérifiez que les conditions requises sont remplies.
- Téléchargez le fichier du pilote JDBC Open SQL Interface.
Les sections suivantes décrivent ces étapes.
Conditions requises
Les composants suivants sont nécessaires pour utiliser l'interface Open SQL :
- L'application tierce que vous souhaitez utiliser (Tableau, ThoughtSpot ou une application personnalisée, par exemple) doit pouvoir se connecter à votre instance Looker. L'interface Open SQL peut être utilisée avec des instances Looker hébergées par le client, à condition que l'instance Looker soit mise en réseau de manière à permettre à l'application tierce d'y accéder.
- Un projet LookML qui utilise des données provenant d'une connexion Google BigQuery. (Le projet LookML doit comporter un fichier model qui spécifie une connexion Google BigQuery dans son paramètre
connection
.) - Un rôle utilisateur Looker incluant l'autorisation
explore
sur le modèle LookML auquel vous souhaitez accéder avec l'interface SQL ouverte.
Télécharger le pilote JDBC Open SQL Interface
Le pilote JDBC de l'interface SQL ouverte de Looker s'appelle avatica-<release_number>-looker.jar
. Téléchargez la dernière version depuis GitHub sur https://github.com/looker-open-source/calcite-avatica/releases.
Le pilote JDBC attend le format d'URL suivant :
jdbc:looker:url=https://Looker instance URL
Exemple :
jdbc:looker:url=https://myInstance.cloud.looker.com
La classe du pilote JDBC est la suivante :
org.apache.calcite.avatica.remote.looker.LookerDriver
S'authentifier auprès de l'interface Open SQL
L'interface Open SQL est compatible avec trois méthodes d'authentification :
OAuth
Les clients JDBC compatibles avec OAuth peuvent être configurés pour utiliser le serveur OAuth d'une instance Looker. Suivez les étapes pour configurer l'authentification OAuth :
- Utilisez l'extension Explorateur d'API pour enregistrer le client JDBC OAuth auprès de votre instance Looker afin que celle-ci puisse reconnaître les requêtes OAuth. Pour obtenir des instructions, consultez Enregistrer une application cliente OAuth.
- Connectez-vous à Looker avec OAuth pour demander un jeton d'accès. Pour obtenir un exemple, consultez Effectuer la connexion utilisateur à l'aide d'OAuth.
- Utilisez un objet Properties pour transmettre les identifiants OAuth lorsque vous ouvrez la connexion JDBC à l'interface Open SQL.
Voici un exemple utilisant DriverManager#getConnection(<String>, <Properties>
`) :
String access_token = getAccessToken() //uses the Looker OAuth flow to get a token
String URL = "jdbc:looker:url=https://myInstance.cloud.looker.com"
Properties info = new Properties( );
info.put("token", access_token);
Connection conn = DriverManager.getConnection(URL, info);
Générer un jeton d'accès à l'aide de clés API
Au lieu d'utiliser le flux OAuth standard pour générer un jeton d'accès, vous pouvez suivre ces étapes pour utiliser l'API Looker afin de générer un jeton d'accès pouvant être transmis au pilote JDBC de l'interface Open SQL :
- Générez des clés API pour votre utilisateur Looker, comme décrit sur la page Paramètres d'administration – Utilisateurs.
Utilisez le point de terminaison de l'API
login
pour votre instance Looker. La réponse inclut un jeton d'accès au formatAuthorization: token <access_token>
. Voici un exemple de commande curl que vous pouvez utiliser pour effectuer cette requête :curl -k -d "client_id=<client_id>&client_secret=<client_secret>" https://<looker_host>/login\
Transmettez la valeur
<access_token>
de la réponse en tant que jeton dans l'objet Properties pour transmettre les identifiants OAuth lors de l'ouverture de la connexion JDBC à l'interface Open SQL.
Clés API
Vous pouvez également utiliser des clés API pour vous authentifier à la place d'un nom d'utilisateur et d'un mot de passe. Les clés API sont considérées comme moins sécurisées que OAuth et ne sont disponibles que pendant la version bêta de l'interface Open SQL. Pour savoir comment créer des clés API pour votre instance Looker, consultez Clés API.
Utilisez la partie ID client de la clé API Looker comme nom d'utilisateur. Utilisez la partie Code secret du client pour le mot de passe.
Exécuter des requêtes avec l'interface Open SQL
Tenez compte des consignes suivantes lorsque vous exécutez des requêtes avec l'interface Open SQL :
- L'interface Open SQL accepte les requêtes SQL qui respectent la syntaxe GoogleSQL.
- L'interface Open SQL nécessite des accents graves (`) autour des identifiants de modèle, d'exploration et de champ. Pour en savoir plus et obtenir des exemples, consultez Utiliser des accents graves autour des identifiants de base de données.
- L'interface Open SQL est compatible avec la plupart des opérateurs BigQuery.
- Avec l'interface Open SQL, vous devez désigner toutes les mesures LookML incluses dans une requête en insérant la mesure (y compris les accents graves) dans la fonction spéciale
AGGREGATE()
. Consultez la section Spécifier des mesures LookML avecAGGREGATE()
.
Limites de SQL
Notez les limites SQL suivantes lorsque vous envoyez des requêtes à l'interface Open SQL :
- L'interface Open SQL n'accepte que les requêtes
SELECT
. L'interface Open SQL n'est pas compatible avec les instructionsUPDATE
etDELETE
, ni avec aucune autre instruction de langage de définition de données (LDD), de langage de manipulation de données (LMD) ou de langage de contrôle de données (LCD). - L'interface Open SQL n'est pas compatible avec l'opérateur
JOIN
.- Vous ne pouvez pas envoyer de requête avec l'opérateur
JOIN
à l'interface Open SQL pour créer des jointures dans la même exploration ou entre deux explorations différentes. - Si vous souhaitez créer une jointure entre deux tables de votre base de données, vous pouvez le faire dans le modèle LookML en créant des jointures vers une ou plusieurs vues dans une définition Explorer au sein d'un fichier de modèle de votre projet LookML.
- Vous ne pouvez pas envoyer de requête avec l'opérateur
- L'interface Open SQL n'est pas compatible avec les appels de fonctions de fenêtre.
- L'interface Open SQL n'est pas compatible avec les sous-requêtes.
- L'interface Open SQL n'est pas compatible avec la conversion de fuseaux horaires. Les dates et heures du modèle LookML seront de type
DATETIME
dans le fuseau horaire défini dans vos paramètres (paramètres Fuseau horaire de l'utilisateur, Fuseau horaire de l'application ou Fuseau horaire de la base de données). - L'interface Open SQL n'est pas compatible avec les types de données BigQuery geography, JSON et time.
Utiliser des accents graves autour des identifiants de base de données
Lorsque vous envoyez des requêtes à l'interface Open SQL, utilisez des accents graves autour des identifiants de schéma, de table et de colonne. Voici comment spécifier des éléments de base de données à l'aide d'accents graves avec les termes Looker :
- schema :
`<model_name>`
- table :
`<explore_name>`
colonne :
`<view_name>.<field_name>`
Voici un exemple de format d'instruction SELECT
utilisant ces éléments :
SELECT `view.field`
FROM `model`.`explore`
LIMIT 10;
Spécifier des mesures LookML avec AGGREGATE()
Les tables de base de données ne contiennent généralement que des dimensions, c'est-à-dire des données qui décrivent un seul attribut d'une ligne du tableau. Toutefois, les projets LookML peuvent définir à la fois des dimensions et des mesures. Une mesure est une agrégation de données sur plusieurs lignes, comme SUM
, AVG
, MIN
ou MAX
. (D'autres types de mesures sont également acceptés. Pour obtenir la liste complète des types de mesures LookML acceptés, consultez la page Types de mesures.)
Avec l'interface Open SQL, vous devez désigner toutes les mesures LookML incluses dans une requête en insérant la mesure (y compris les accents graves) dans la fonction spéciale AGGREGATE()
. Par exemple, utilisez cette option pour spécifier la mesure count de la vue orders :
AGGREGATE(`orders.count`)
Vous devez encapsuler les mesures LookML dans la fonction AGGREGATE()
, que la mesure se trouve dans une clause SELECT
, HAVING
ou ORDER BY
.
Si vous n'êtes pas sûr qu'un champ soit une mesure LookML, vous pouvez utiliser la méthode DatabaseMetaData.getColumns
pour accéder aux métadonnées du projet LookML. La colonne IS_GENERATEDCOLUMN
indiquera YES
pour les mesures LookML et NO
pour les dimensions LookML. Pour en savoir plus, consultez la section Accéder aux métadonnées de la base de données.
Spécifier les champs de filtre uniquement et les paramètres avec JSON_OBJECT
L'interface Open SQL est compatible avec les paramètres et les champs de filtre uniquement.
Lorsque vous exécutez des requêtes avec l'interface Open SQL, vous pouvez appliquer des paramètres et des champs de filtre uniquement à la requête en incluant un appel de constructeur JSON_OBJECT
au format suivant :
JSON_OBJECT(
'<view>.<parameter name>', '<parameter value>',
'<view>.<filter name>', '<Looker filter expression>'
)
L'objet JSON peut contenir zéro, une ou plusieurs paires clé/valeur de filtre, et zéro, une ou plusieurs paires clé/valeur de paramètre.
- La clé du constructeur
JSON_OBJECT
doit correspondre au nom d'un champ ou d'un paramètre de filtre uniquement. - Pour les champs de filtre uniquement, la valeur de chaque clé doit être une expression de filtre de chaîne Looker.
- Pour les paramètres, la valeur de chaque clé doit être une valeur simple définie dans la définition
parameter
.
Consultez les sections suivantes pour obtenir des exemples d'utilisation des paramètres et des champs de filtre uniquement avec l'interface Open SQL.
Exemple de paramètre
Par exemple, pour utiliser un parameter
avec l'interface Open SQL, si la vue customers
comportait un paramètre défini dans Looker comme suit :
parameter: segment {
type: string
allowed_value: {
label: "Small (less than 500)"
value: "small_customers"
}
allowed_value: {
label: "Larger (greater than 10,000)"
value: "large_customers"
}
allowed_value: {
label: "Medium customers (Between 500 and 10,000)"
value: "medium_customers"
}
}
Vous pouvez envoyer cette requête à l'interface Open SQL pour appliquer la valeur medium_customers
du paramètre segment
à la requête :
SELECT `customers.segment_size`,
AGGREGATE(`orders.total_amount`)
FROM `ecommerce`.`orders`(JSON_OBJECT(
'customers.segment', 'medium_customers'
))
GROUP BY `customers.state`, `customers.city`
HAVING AGGREGATE(`orders.count`) > 10
ORDER BY 3 DESC LIMIT 5;
L'interface Open SQL transmettra cette valeur de paramètre à la requête dans Looker, et Looker appliquera la valeur medium_customers
à tous les champs de l'onglet "Explorer" qui sont configurés pour utiliser le paramètre segment
. Consultez la documentation parameter
pour savoir comment fonctionnent les paramètres dans Looker.
Exemple de champ de filtre uniquement
Vous pouvez utiliser un champ filter
avec l'interface Open SQL. Par exemple, si une vue products
comportait une dimension et un champ de filtre uniquement définis dans Looker comme suit :
filter: brand_select {
type: string
}
dimension: brand_comparitor {
sql:
CASE
WHEN {% condition brand_select %} ${products.brand_name} {% endcondition %}
THEN ${products.brand_name}
ELSE "All Other Brands"
END ;;
}
Vous pouvez utiliser le filtre brand_select
avec l'interface Open SQL en envoyant une requête telle que la suivante :
SELECT `products.brand_comparator`, `products.number_of_brands`,
AGGREGATE(`products.total_revenue`)
FROM `ecommerce`.`orders`(JSON_OBJECT(
'products.brand_select', '%Santa Cruz%'
))
GROUP BY `products.brand_comparator`
ORDER BY 3 DESC LIMIT 5;
L'interface Open SQL appliquera l'expression de filtre de chaîne Looker %Santa Cruz%
à la requête dans Looker. Consultez la documentation filter
pour savoir comment fonctionnent les champs de filtre uniquement dans Looker.
Fournissez des valeurs always_filter
ou conditionally_filter
dans une clause WHERE
ou HAVING
.
L'interface Open SQL peut être compatible avec une exploration comportant always_filter
ou conditionally_filter
, mais pas les deux.
Si vous avez défini votre exploration LookML avec always_filter
ou conditionally_filter
, vous devez transmettre les valeurs des champs de filtre dans votre requête SQL à l'interface SQL ouverte :
- Si la définition du filtre spécifie une ou plusieurs dimensions, vous devez inclure une clause
WHERE
dans votre requête SQL pour chacune des dimensions du filtre. - Si la définition du filtre spécifie une ou plusieurs mesures, vous devez inclure une clause
HAVING
dans votre requête SQL pour chacune des mesures du filtre.
Par exemple, il existe un modèle faa
dans lequel vous avez défini une exploration LookML flights
avec un paramètre always_filter
qui spécifie les dimensions country
et aircraft_category
, ainsi que la mesure count
, comme suit :
explore: flights {
view_name: flights
always_filter: {
filters: [country : "Peru" , aircraft_category : "Airplane", count : ">1"]
}
}
Dans votre requête à l'interface Open SQL, vous devez utiliser une clause WHERE
pour transmettre les valeurs des dimensions de filtre et une clause HAVING
pour transmettre une valeur du filtre de mesure à votre modèle LookML, comme suit :
SELECT
`flights.make`
FROM
`faa`.`flights`
WHERE `flights.country` = 'Ecuador' AND `flights.aircraft_category` = 'Airplane'
GROUP BY
1
HAVING `flights.count` > 2)
LIMIT 5
Si vous ne transmettez pas de valeurs de filtre pour chacune des dimensions et mesures spécifiées dans le paramètre always_filter
, la requête renverra une erreur. Il en va de même pour les dimensions et les mesures spécifiées dans un paramètre conditionally_filter
, sauf que vous pouvez définir un paramètre conditionally_filter
avec un sous-paramètre unless
, comme ceci :
explore: flights {
view_name: flights
conditionally_filter: {
filters: [country : "Peru" , aircraft_category : "Airplane"]
unless: [count]
}
}
Dans ce cas, vous devez transmettre une valeur de filtre pour chacune des dimensions et métriques spécifiées dans le sous-paramètre filters
de conditionally_filter
, sauf si vous spécifiez un filtre sur un champ dans le sous-paramètre unless
. (Pour en savoir plus sur l'utilisation du sous-paramètre unless
, consultez la page de documentation conditionally_filter
.)
Par exemple, l'une ou l'autre des requêtes suivantes envoyées à l'interface Open SQL serait acceptable. La première requête fournit des valeurs de filtre pour les champs spécifiés dans le sous-paramètre filters
, et la seconde fournit une valeur de filtre pour le champ spécifié dans le sous-paramètre unless
:
SELECT
`flights.make`
FROM
`faa`.`flights`
WHERE `flights.country` = 'Ecuador' AND `flights.aircraft_category` = 'Airplane'
LIMIT 5
SELECT
`flights.make`
FROM
`faa`.`flights`
GROUP BY
1
HAVING `flights.count` > 2
Exemple
Voici un exemple de requête utilisant à la fois des dimensions et des mesures. Cette requête récupère les dimensions state et city de la vue customers, ainsi que la mesure total amount de la vue orders. Ces deux vues sont jointes à l'exploration orders dans le modèle ecommerce. Pour les villes ayant enregistré plus de 10 commandes, la réponse à cette requête affiche les cinq premières villes en fonction du montant des commandes :
SELECT `customers.state`, `customers.city`,
AGGREGATE(`orders.total_amount`)
FROM `ecommerce`.`orders`
GROUP BY `customers.state`, `customers.city`
HAVING AGGREGATE(`orders.count`) > 10
ORDER BY 3 DESC LIMIT 5;
Accéder aux métadonnées de la base de données
L'interface Open SQL est compatible avec un sous-ensemble de l'interface DatabaseMetaData JDBC standard, qui permet d'obtenir des informations sur la base de données sous-jacente. Vous pouvez utiliser les méthodes suivantes de l'interface DatabaseMetaData pour obtenir des informations sur votre modèle LookML :
L'interface SQL ouverte ne renvoie de résultats que pour les modèles, les explorations et les champs auxquels vous avez accès.
DatabaseMetadata.getSchemas
Le tableau suivant décrit la relation entre un modèle LookML et les structures de base de données standards dans la réponse de la méthode d'interface DatabaseMetadata.getSchemas
.
getSchemas colonne de réponse |
Description |
---|---|
TABLE_SCHEM |
Nom du modèle LookML |
TABLE_CATALOG |
(nul) |
DatabaseMetadata.getTables
Le tableau suivant décrit la relation entre un modèle LookML et les structures de base de données dans la réponse de la méthode d'interface DatabaseMetaData.getTables
. La réponse inclut des métadonnées JDBC standards ainsi que des métadonnées spécifiques à Looker :
getTables colonne de réponse |
Description |
---|---|
Métadonnées standards JDBC | |
TABLE_CAT |
(nul) |
TABLE_SCHEM |
Nom du modèle LookML |
TABLE_NAME |
Nom de l'exploration LookML |
TABLE_TYPE |
Renvoie toujours la valeur TABLE_TYPE |
REMARKS |
(nul) |
TYPE_CAT |
(nul) |
TYPE_SCHEM |
(nul) |
TYPE_NAME |
Chaîne représentant le type de tableau. Les types possibles sont TABLE , VIEW , SYSTEM TABLE , GLOBAL TEMPORARY , LOCAL TEMPORARY , ALIAS et SYNONYM . |
SELF_REFERENCING_COL_NAME |
(nul) |
REF_GENERATION |
(nul) |
Métadonnées spécifiques à Looker | |
DESCRIPTION |
Explorer la description |
LABEL |
Libellé Explorer |
TAGS |
Explorer les tags |
CONDITIONALLY_FILTER_UNLESS |
Liste des champs dans le sous-paramètre unless du paramètre conditionally_filter de l'exploration. Si aucun champ n'est spécifié dans le sous-paramètre unless ou si aucun paramètre conditionally_filter n'est défini pour l'exploration, cette valeur est nulle. |
DatabaseMetadata.getColumns
Le tableau suivant décrit la relation entre un modèle LookML et les structures de base de données dans la réponse de la méthode d'interface DatabaseMetaData.getColumns
. La réponse inclut des métadonnées JDBC standards ainsi que des métadonnées spécifiques à Looker :
getColumns colonne de réponse |
Description |
---|---|
Métadonnées standards JDBC | |
TABLE_CAT |
(nul) |
TABLE_SCHEM |
Nom du modèle LookML |
TABLE_NAME |
Nom de l'exploration LookML |
COLUMN_NAME |
Nom du champ LookML au format `<view_name>.<field_name>` . Exemple :`orders.amount` |
DATA_TYPE |
Code java.sql.Types de la colonne. Par exemple, les champs yesno Looker sont de type de code SQL 16 (BOOLEAN). |
TYPE_NAME |
Chaîne représentant le type de données de la colonne. Pour un type défini par l'utilisateur (TDU), le nom de type est complet. |
COLUMN_SIZE |
Entier représentant le nombre maximal de caractères ou d'octets pouvant être stockés dans la colonne. |
BUFFER_LENGTH |
(nul) |
DECIMAL_DIGITS |
Entier représentant l'échelle des données : nombre de chiffres à droite de la virgule pour les types de données applicables, ou nombre de chiffres fractionnaires. La valeur "null" est renvoyée pour les types de données pour lesquels DECIMAL_DIGITS n'est pas applicable. |
NUM_PREC_RADIX |
Entier représentant la base ou le radix (généralement 10 ou 2) des données. |
NULLABLE |
Entier indiquant si les valeurs nulles sont autorisées :
|
REMARKS |
(nul) |
COLUMN_DEF |
(nul) |
SQL_DATA_TYPE |
(nul) |
SQL_DATETIME_SUB |
(nul) |
CHAR_OCTET_LENGTH |
Pour les types de données de caractères, un entier représentant le nombre maximal d'octets dans la colonne. |
ORDINAL_POSITION |
Ordinal du champ dans l'exploration (en commençant par 1), en mélangeant les dimensions et les mesures par ordre alphabétique selon le nom de la vue, puis le nom du champ |
IS_NULLABLE |
Renvoie toujours la valeur YES |
SCOPE_CATALOG |
(nul) |
SCOPE_SCHEMA |
(nul) |
SCOPE_TABLE |
(nul) |
SOURCE_DATA_TYPE |
(nul) |
IS_AUTOINCREMENT |
(nul) |
IS_GENERATEDCOLUMN |
YES pour les mesures, NO pour les dimensions |
Métadonnées spécifiques à Looker | |
DIMENSION_GROUP |
Nom du groupe de dimensions si le champ en fait partie. Si le champ ne fait pas partie d'un groupe de dimensions, cette valeur est nulle. |
DRILL_FIELDS |
Liste des champs d'analyse définis pour la dimension ou la mesure, le cas échéant |
FIELD_ALIAS |
Alias du champ, le cas échéant |
FIELD_CATEGORY |
Le type de champ (dimension ou measure ) |
FIELD_DESCRIPTION |
Champ description |
FIELD_GROUP_VARIANT |
Si le champ est présenté sous un libellé de groupe, FIELD_GROUP_VARIANT spécifie le nom abrégé du champ affiché sous le libellé de groupe. |
FIELD_LABEL |
Champ label |
FIELD_NAME |
Nom de la dimension ou de la mesure |
LOOKER_TYPE |
Type de champ LookML pour la dimension ou la mesure |
REQUIRES_REFRESH_ON_SORT |
Indique si la requête SQL doit être actualisée pour trier à nouveau les valeurs du champ (TRUE ) ou si les valeurs du champ peuvent être triées à nouveau sans nécessiter l'actualisation de la requête SQL (FALSE ). |
SORTABLE |
Indique si le champ peut être trié (TRUE ) ou non (FALSE ). |
TAGS |
Champ tags |
USE_STRICT_VALUE_FORMAT |
Indique si le champ utilise un format de valeur strict (TRUE ) ou non (FALSE ). |
VALUE_FORMAT |
Chaîne format de la valeur pour le champ |
VIEW_LABEL |
Afficher le libellé du champ |
VIEW_NAME |
Nom de la vue dans laquelle le champ est défini dans le projet LookML |
HIDDEN |
Indique si le champ est masqué dans le sélecteur de champs des explorations (TRUE ) ou s'il est visible dans le sélecteur de champs des explorations (FALSE ). |
ALWAYS_FILTER |
Valeur par défaut du paramètre always_filter défini dans le champ. Si le champ ne fait pas partie d'un paramètre always_filter , cette valeur est nulle. |
CONDITIONALLY_FILTER |
Valeur par défaut du paramètre conditionally_filter défini dans le champ. Si le champ ne fait pas partie d'un paramètre conditionally_filter , cette valeur est nulle. |
Identifier les requêtes d'interface Open SQL dans l'UI Looker
Les administrateurs Looker peuvent utiliser l'UI Looker pour identifier les requêtes provenant de l'interface Open SQL :
- Sur la page d'administration Requêtes, les requêtes de l'interface SQL ouverte ont une valeur Source de "Interface SQL". La valeur Utilisateur indique le nom de l'utilisateur Looker qui a exécuté la requête. Vous pouvez cliquer sur le bouton Détails d'une requête pour afficher des informations supplémentaires à son sujet. Dans la boîte de dialogue Détails, vous pouvez cliquer sur Requête de l'interface SQL pour afficher la requête SQL qui a été envoyée à Looker depuis l'interface Open SQL.
Dans l'explorateur de l'historique de l'activité système, les requêtes de l'interface Open SQL ont une valeur Source de "sql_interface". La valeur Adresse e-mail de l'utilisateur indique l'adresse e-mail de l'utilisateur Looker qui a exécuté la requête. Vous pouvez accéder directement à l'historique filtré sur "sql_interface" en insérant l'adresse de votre instance Looker au début de cette URL :
https://Looker instance URL/explore/system__activity/history?fields=history.source,history.completed_date&f[history.source]=%22sql_interface%22
Dépôt pour les dépendances tierces
Le lien suivant permet d'accéder au dépôt hébergé par Google pour les dépendances tierces utilisées par le pilote JDBC Looker :
https://third-party-mirror.googlesource.com/looker_sql_interface/+/refs/heads/master/third_party/