case_sensitive (per i modelli)

Questa pagina si riferisce al parametro case_sensitive che fa parte di un modello.

case_sensitive può essere utilizzato anche nell'ambito di un'esplorazione, come descritto nella pagina della documentazione dedicata a case_sensitive (per le esplorazioni).

case_sensitive può essere utilizzato anche nell'ambito di un campo di dimensione o filtro, come descritto nella pagina della documentazione case_sensitive (per i campi).

Utilizzo

case_sensitive: yes
Gerarchia
case_sensitive
Valore predefinito
yes, se il dialetto del database supporta il parametro

Accetta
Un valore booleano (yes o no)

Definizione

case_sensitive determina se i filtri verranno trattati come sensibili alle maiuscole per un determinato modello. Tutti i filtri correlati al modello sono interessati, inclusi quelli aggiunti nell'interfaccia utente di Esplora, nell'interfaccia utente della dashboard, in un campo di filtro o nel parametro filters di una misura.

case_sensitive funziona modificando la clausola WHERE dell'SQL generato da Looker. Quando case_sensitive: yes, i filtri vengono espressi con = o LIKE, ad esempio:

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

Quando case_sensitive: no, i filtri vengono espressi con ILIKE (o equivalente), ad esempio:

WHERE name ILIKE 'bob'

La maggior parte dei dialetti SQL supporta case_sensitive. Tuttavia, se il dialetto SQL non supporta il parametro case_sensitive, la distinzione tra maiuscole e minuscole varia a seconda della configurazione del database, che di solito non fa distinzione tra maiuscole e minuscole. Il supporto dei dialetti è elencato in case_sensitive non è supportato da alcuni dialetti SQL.

Esempi

Rendi tutti i filtri sensibili alle maiuscole per un modello:

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

Rendi tutti i filtri non sensibili alle maiuscole per un modello:

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

Sfide comuni

case_sensitive non è supportato da alcuni dialetti SQL

Affinché Looker supporti case_sensitive nel tuo progetto Looker, deve supportarlo anche il dialetto del database. La tabella seguente mostra quali dialetti supportano case_sensitive nell'ultima release di Looker:

Dialetto Supportata?
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 fornisce un livello di dati semantici che si connette a vari dialetti di database. Se Looker supporta case_sensitive per i dialetti sottostanti, supporta anche case_sensitive per DataVirtuality che si connette a questi dialetti.

Cose da sapere

Puoi creare una ricerca sensibile alle maiuscole in MySQL

È possibile creare una ricerca sensibile alle maiuscole e minuscole in MySQL senza utilizzare il parametro case_sensitive. In MySQL, alcuni tipi di dati, chiamati stringhe binarie, archiviano il testo come una serie di numeri. La distinzione tra maiuscole e minuscole nel testo fa la differenza nei numeri utilizzati. Pertanto, se converti il testo in una stringa binaria, puoi eseguire ricerche sensibili alle maiuscole. Ad esempio:

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