case_sensitive(Explore の場合)

このページでは、case_sensitive パラメータについて説明します。これは Explore の一部です。

case_sensitive は、モデルの一部としても使用できます。詳細については、case_sensitive(モデル用) パラメータのドキュメント ページをご覧ください。

case_sensitive は、ディメンションの一部としても使用できます。詳細については、case_sensitive(フィールド用) パラメータのドキュメント ページをご覧ください。

用途

explore: explore_name {
  case_sensitive: yes
}
階層
case_sensitive
デフォルト値
データベース言語がパラメータをサポートしている場合は yes

許可
ブール値(yes または no)

定義

case_sensitive は、特定の Explore でフィルタを大文字と小文字を区別するかどうかを決定します。Explore UI、ダッシュボード UI、filters パラメータで追加されたフィルタなど、Explore に関連するすべてのフィルタが影響を受けます。

デフォルトでは、case_sensitivity はオンになっており、フィルタでは大文字と小文字が区別されます。ただし、このページの case_sensitive は一部の SQL 言語でサポートされていませんで説明されているように、一部の言語ではこのパラメータがサポートされていません。

case_sensitive は、Looker が生成する SQL の WHERE 句を調整することで機能します。case_sensitive がオンの場合、フィルタは = または LIKE で表されます。次に例を示します。

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

case_sensitive がオフの場合、フィルタは ILIKE(または同等のもの)で表されます。次に例を示します。

WHERE name ILIKE 'bob'

例

[Product] Explore のすべてのフィルタで大文字と小文字を区別するようにします。

explore: product {
  case_sensitive: yes
}

[Customer] Explore のすべてのフィルタで大文字と小文字を区別しないようにします。

explore: customer {
  case_sensitive: no
}

一般的な課題

case_sensitive は一部の SQL 言語でサポートされていません

デフォルトでは、case_sensitivity はオンになっており、フィルタでは大文字と小文字が区別されます。SQL 言語が case_sensitive パラメータをサポートしていない場合、大文字と小文字の区別はデータベースの設定によって異なります。通常は区別されません。

Looker プロジェクトで case_sensitive に対応するためには、データベース言語でも case_sensitive に対応している必要があります。次の表に、Looker の最新リリースで case_sensitive をサポートする言語を示します。

方言 サポート対象
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
ClickHouse 26+
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+
Dremio 26+ with Arrow Flight SQL
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

知っておくべきこと

MySQL で大文字と小文字を区別する検索を作成できる

MySQL は case_sensitive パラメータをサポートしていませんが、MySQL で大文字と小文字を区別する検索を作成できます。MySQL では、バイナリ文字列と呼ばれる特定のデータ型で、テキストが数値のシーケンスとして保存されます。テキストの大文字と小文字は、使用される数値に影響します。したがって、テキストをバイナリ文字列に変換すると、大文字と小文字を区別する検索を行うことができます。次に例を示します。

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

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