Esta página se refere ao
case_sensitiveparâmetro que faz parte de um modelo.
case_sensitivetambém pode ser usado como parte de uma análise, conforme descrito na página de documentaçãocase_sensitive(para análises).
case_sensitivetambém pode ser usado como parte de um campo de dimensão ou filtro, conforme descrito na página de documentaçãocase_sensitive(para campos).
Uso
case_sensitive: yes
|
Hierarquia
case_sensitive |
Valor padrão
yes, se o dialeto do banco de dados for compatível com o parâmetro
Aceita
Um booleano (yes ou no)
|
Definição
case_sensitive determina se os filtros serão tratados como diferenciação de maiúsculas e minúsculas para um determinado modelo. Todos os filtros relacionados ao modelo são afetados, incluindo aqueles adicionados na interface da análise, na interface do painel, em um campo de filtro ou no parâmetro filters de uma medida.
case_sensitive funciona ajustando a cláusula WHERE do SQL gerado pelo Looker. Quando case_sensitive: yes, os filtros são expressos com = ou LIKE, como:
WHERE name = 'bob'
WHERE name LIKE '%bob%'
Quando case_sensitive: no, os filtros são expressos com ILIKE (ou equivalente), como:
WHERE name ILIKE 'bob'
A maioria dos dialetos SQL oferece suporte a case_sensitive. No entanto, se o dialeto SQL não oferecer suporte ao parâmetro case_sensitive, a diferenciação de maiúsculas e minúsculas vai variar de acordo com a configuração do banco de dados, que geralmente não diferencia maiúsculas de minúsculas. O suporte a dialetos está listado em case_sensitive não é compatível com alguns dialetos SQL.
Exemplos
Tornar todos os filtros diferenciais de maiúsculas e minúsculas para um modelo:
connection: "connection_name"
include: "filename_or_pattern"
case_sensitive: yes
explore: explore_name {...}
Tornar todos os filtros não diferenciais de maiúsculas e minúsculas para um modelo:
connection: "connection_name"
include: "filename_or_pattern"
case_sensitive: no
Desafios comuns
case_sensitive não é compatível com alguns dialetos SQL
Para que o Looker ofereça suporte a case_sensitive no seu projeto, o dialeto do banco de dados também precisa oferecer suporte a ele. A tabela a seguir mostra quais dialetos oferecem suporte a case_sensitive na versão mais recente do Looker:
| Dialeto | Compatível? |
|---|---|
| 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 |
O DataVirtuality oferece uma camada de dados semântica que se conecta a vários dialetos de banco de dados. Se o Looker oferecer suporte a case_sensitive para os dialetos subjacentes, ele também vai oferecer suporte a case_sensitive para o DataVirtuality que se conecta a esses dialetos.
Informações importantes
É possível criar uma pesquisa que diferencia maiúsculas de minúsculas no MySQL
É possível criar uma pesquisa que diferencia maiúsculas de minúsculas no MySQL sem usar o parâmetro case_sensitive. No MySQL, determinados tipos de dados, chamados de strings binárias, armazenam texto como uma série de números. A capitalização do texto faz diferença nos números usados. Portanto, se você converter o texto em uma string binária, poderá fazer pesquisas que diferenciam maiúsculas de minúsculas. Exemplo:
dimension: will_NOT_be_case_sensitive {
sql: ${TABLE}.something ;;
}
dimension: will_be_case_sensitive {
sql: CAST(${TABLE}.something AS BINARY) ;;
}