case_sensitive (für Modelle)

Auf dieser Seite wird auf den Parameter case_sensitive verwiesen, der Teil eines Modells ist.

case_sensitive kann auch als Teil eines Explores verwendet werden. Dies wird auf der Dokumentationsseite case_sensitive (für Explores) beschrieben.

case_sensitive kann auch als Teil eines Dimensions- oder Filterfelds verwendet werden. Das wird auf der Dokumentationsseite case_sensitive (für Felder) beschrieben.

Nutzung

case_sensitive: yes
Hierarchie
case_sensitive
Standardwert
yes, wenn der Datenbankdialekt den Parameter unterstützt

Akzeptiert
Ein boolescher Wert (yes oder no)

Definition

Mit case_sensitive wird festgelegt, ob bei Filtern für ein bestimmtes Modell zwischen Groß- und Kleinschreibung unterschieden werden soll. Alle Filter, die mit dem Modell verknüpft sind, sind betroffen. Das gilt auch für Filter, die in der Explore-Benutzeroberfläche, der Dashboard-Benutzeroberfläche, einem Filterfeld oder dem Parameter filters eines Messwerts hinzugefügt wurden.

case_sensitive funktioniert, indem die WHERE-Klausel des von Looker generierten SQL-Codes angepasst wird. Wenn case_sensitive: yes, werden Filter mit = oder LIKE ausgedrückt, z. B.:

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

Bei case_sensitive: no werden Filter mit ILIKE (oder einer entsprechenden Funktion) ausgedrückt, z. B.:

WHERE name ILIKE 'bob'

Die meisten SQL-Dialekte unterstützen case_sensitive. Wenn Ihr SQL-Dialekt den Parameter case_sensitive jedoch nicht unterstützt, hängt die Groß-/Kleinschreibung von Ihrer Datenbankkonfiguration ab. In der Regel wird hier nicht zwischen Groß- und Kleinschreibung unterschieden. Die Unterstützung von Dialekten ist unter case_sensitive wird von einigen SQL-Dialekten nicht unterstützt aufgeführt.

Beispiele

Alle Filter für ein Modell so einstellen, dass zwischen Groß- und Kleinschreibung unterschieden wird:

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

Alle Filter für ein Modell so einstellen, dass die Groß-/Kleinschreibung nicht berücksichtigt wird:

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

Häufige Herausforderungen

case_sensitive wird von einigen SQL-Dialekten nicht unterstützt

Damit Looker case_sensitive in Ihrem Looker-Projekt unterstützen kann, muss es auch von Ihrem Datenbankdialekt unterstützt werden. In der folgenden Tabelle ist zu sehen, welche Dialekte case_sensitive in der aktuellen Version von Looker unterstützen:

Dialekt Unterstützt?
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 bietet eine semantische Datenschicht, die eine Verbindung zu verschiedenen Datenbankdialekten herstellt. Wenn Looker case_sensitive für die zugrunde liegenden Dialekte unterstützt, unterstützt Looker case_sensitive auch für DataVirtuality, wenn eine Verbindung zu diesen Dialekten hergestellt wird.

Wichtige Punkte

Sie können eine Suche mit Berücksichtigung der Groß-/Kleinschreibung in MySQL erstellen.

Es ist möglich, in MySQL eine Suche durchzuführen, bei der die Groß- und Kleinschreibung beachtet wird, ohne den Parameter case_sensitive zu verwenden. In MySQL wird Text in bestimmten Datentypen, sogenannten binären Strings, als Reihe von Zahlen gespeichert. Die Groß- und Kleinschreibung des Texts wirkt sich auf die verwendeten Zahlen aus. Wenn Sie Ihren Text in einen Binärstring umwandeln, können Sie daher Suchanfragen stellen, bei denen die Groß- und Kleinschreibung beachtet wird. Beispiel:

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