case_sensitive (pour les modèles)

Cette page fait référence au paramètre case_sensitive qui fait partie d'un modèle.

case_sensitive peut également être utilisé dans une exploration, comme décrit sur la page de documentation case_sensitive (pour les explorations).

case_sensitive peut également être utilisé dans un champ de dimension ou de filtre, comme décrit sur la page de documentation case_sensitive (pour les champs).

Utilisation

case_sensitive: yes
Hiérarchie
case_sensitive
Valeur par défaut
yes, si le dialecte de la base de données accepte le paramètre

Acceptation
Booléen (yes ou no)

Définition

case_sensitive détermine si les filtres seront traités comme sensibles à la casse pour un modèle donné. Tous les filtres associés au modèle sont concernés, y compris ceux ajoutés dans l'UI Explorer, l'UI Tableau de bord, un champ de filtre ou le paramètre filters d'une mesure.

case_sensitive fonctionne en ajustant la clause WHERE du code SQL généré par Looker. Lorsque case_sensitive: yes, les filtres sont exprimés avec = ou LIKE, par exemple :

WHERE name = 'bob'
WHERE name LIKE '%bob%'

Lorsque case_sensitive: no, les filtres sont exprimés avec ILIKE (ou équivalent), par exemple :

WHERE name ILIKE 'bob'

La plupart des dialectes SQL sont compatibles avec case_sensitive. Toutefois, si votre dialecte SQL n'est pas compatible avec le paramètre case_sensitive, la sensibilité à la casse variera en fonction de la configuration de votre base de données, qui n'est généralement pas sensible à la casse. La compatibilité des dialectes est indiquée dans case_sensitive n'est pas compatible avec certains dialectes SQL.

Exemples

Rendez tous les filtres d'un modèle sensibles à la casse :

connection: "connection_name"
include: "filename_or_pattern"
case_sensitive: yes
explore: explore_name {...}

Rendre tous les filtres d'un modèle insensibles à la casse :

connection: "connection_name"
include: "filename_or_pattern"
case_sensitive: no

Difficultés courantes

case_sensitive n'est pas compatible avec certains dialectes SQL.

Pour que Looker prenne en charge case_sensitive dans votre projet Looker, votre dialecte de base de données doit également le prendre en charge. Le tableau suivant indique les dialectes qui prennent en charge case_sensitive dans la dernière version de Looker :

Dialecte Compatibilité
Actian Avalanche
Amazon Athena
Amazon Aurora MySQL
Amazon Redshift
Amazon Redshift 2.1+
Amazon Redshift Serverless 2.1+
Apache Druid
Apache Druid 0.13+
Apache Druid 0.18+
Apache Hive 2.3+
Apache Hive 3.1.2+
Apache Spark 3+
ClickHouse
Cloudera Impala 3.1+
Cloudera Impala 3.1+ with Native Driver
Cloudera Impala with Native Driver
DataVirtuality
Databricks
Denodo 7
Denodo 8 & 9
Dremio
Dremio 11+
Exasol
Google BigQuery Legacy SQL
Google BigQuery Standard SQL
Google Cloud PostgreSQL
Google Cloud SQL
Google Spanner
Greenplum
HyperSQL
IBM Netezza
MariaDB
Microsoft Azure PostgreSQL
Microsoft Azure SQL Database
Microsoft Azure Synapse Analytics
Microsoft SQL Server 2008+
Microsoft SQL Server 2012+
Microsoft SQL Server 2016
Microsoft SQL Server 2017+
MongoBI
MySQL
MySQL 8.0.12+
Oracle
Oracle ADWC
PostgreSQL 9.5+
PostgreSQL pre-9.5
PrestoDB
PrestoSQL
SAP HANA
SAP HANA 2+
SingleStore
SingleStore 7+
Snowflake
Teradata
Trino
Vector
Vertica

DataVirtuality fournit une couche de données sémantiques qui se connecte à différents dialectes de base de données. Si Looker est compatible avec case_sensitive pour les dialectes sous-jacents, il est également compatible avec case_sensitive pour DataVirtuality se connectant à ces dialectes.

Bon à savoir

Vous pouvez créer une recherche sensible à la casse dans MySQL.

Il est possible de créer une recherche sensible à la casse dans MySQL sans utiliser le paramètre case_sensitive. Dans MySQL, certains types de données, appelés chaînes binaires, stockent le texte sous forme de série de nombres. La casse du texte a une incidence sur les nombres utilisés. Par conséquent, si vous convertissez votre texte en chaîne binaire, vous pouvez effectuer des recherches sensibles à la casse. Exemple :

dimension: will_NOT_be_case_sensitive {
  sql: ${TABLE}.something ;;
}
dimension: will_be_case_sensitive {
  sql: CAST(${TABLE}.something AS BINARY) ;;
}