case_sensitive (para Explorar)

En esta página, se hace referencia al parámetro case_sensitive que forma parte de una exploración.

case_sensitive también se puede usar como parte de un modelo, que se describe en la página de documentación del parámetro case_sensitive (para modelos).

case_sensitive también se puede usar como parte de una dimensión, que se describe en la página de documentación del parámetro case_sensitive (para campos).

Uso

explore: explore_name {
  case_sensitive: yes
}
Jerarquía
case_sensitive
Valor predeterminado
yes, si el dialecto de la base de datos admite el parámetro

Acepta
Un valor booleano (yes o no)

Definición

case_sensitive determina si los filtros se tratarán como sensibles a mayúsculas y minúsculas en una exploración determinada. Todos los filtros relacionados con la exploración se ven afectados, incluidos los que se agregaron en la IU de exploración, la IU del panel y el filters parámetro.

De forma predeterminada, case_sensitivity está activado y los filtros distinguen mayúsculas de minúsculas. Sin embargo, algunos dialectos no admiten este parámetro, como se describe en la sección case_sensitive no es compatible con algunos dialectos de SQL de esta página.

case_sensitive funciona ajustando la cláusula WHERE del SQL que genera Looker. Cuando case_sensitive está activado, los filtros se expresan con = o LIKE, como se muestra a continuación:

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

Cuando case_sensitive está desactivado, los filtros se expresan con ILIKE (o equivalente), como se muestra a continuación:

WHERE name ILIKE 'bob'

Ejemplos

Haz que todos los filtros distingan mayúsculas de minúsculas para la exploración Product:

explore: product {
  case_sensitive: yes
}

Haz que todos los filtros no distingan mayúsculas de minúsculas para la exploración Customer:

explore: customer {
  case_sensitive: no
}

Desafíos habituales

case_sensitive no es compatible con algunos dialectos de SQL

De forma predeterminada, case_sensitivity está activado y los filtros distinguen mayúsculas de minúsculas. Si tu dialecto de SQL no admite el parámetro case_sensitive, la distinción entre mayúsculas y minúsculas variará según la configuración de tu base de datos, que por lo general no distinguirá mayúsculas de minúsculas.

Para que Looker admita case_sensitive en tu proyecto de Looker, tu dialecto de base de datos también debe admitirlo. En la siguiente tabla, se muestran los dialectos que admiten case_sensitive en la versión más reciente de Looker:

Dialecto ¿Es compatible?
Actian Avalanche
Amazon Athena
Amazon Aurora MySQL
Amazon Redshift
Amazon Redshift 2.1+
Amazon Redshift Serverless 2.1+
Apache Druid
Apache Druid 0.13.x - 0.17.x
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 AlloyDB for PostgreSQL
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
MongoSQL
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

Información importante

Puedes crear una búsqueda que distinga mayúsculas de minúsculas en MySQL

Es posible crear una búsqueda que distinga mayúsculas de minúsculas en MySQL, aunque MySQL no admite el parámetro case_sensitive. En MySQL, ciertos tipos de datos, llamados cadenas binarias, almacenan texto como una serie de números. El uso de mayúsculas y minúsculas en el texto marca una diferencia en los números que se usan. Por lo tanto, si conviertes el texto en una cadena binaria, puedes realizar búsquedas que distingan mayúsculas de minúsculas. Por ejemplo:

dimension: will_NOT_be_case_sensitive {
  sql: ${TABLE}.something ;;
}

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