このページでは、モデルの一部である
case_sensitiveパラメータについて説明します。
case_sensitiveは、case_sensitive(Explore 用)のドキュメント ページで説明されているように、Explore の一部としても使用できます。
case_sensitiveは、case_sensitive(フィールド用)のドキュメント ページで説明されているように、ディメンション フィールドまたはフィルタ フィールドの一部としても使用できます。
用途
case_sensitive: yes
|
階層
case_sensitive |
デフォルト値
yes(データベース言語がパラメータをサポートしている場合)
許可
ブール値(yes または no) |
定義
case_sensitive は、特定のモデルでフィルタの大文字と小文字を区別するかどうかを決定します。モデルに関連するすべてのフィルタ(探索 UI、ダッシュボード UI、フィルタ フィールド、指標の filters パラメータで追加されたフィルタを含む)が影響を受けます。
case_sensitive は、Looker が生成する SQL の WHERE 句を調整することで機能します。case_sensitive: yes の場合、フィルタは次のように = または LIKE で表されます。
WHERE name = 'bob'
WHERE name LIKE '%bob%'
case_sensitive: no の場合、フィルタは次のように ILIKE(または同等のもの)で表されます。
WHERE name ILIKE 'bob'
ほとんどの SQL 言語は case_sensitive をサポートしています。ただし、SQL 言語が case_sensitive パラメータをサポートしていない場合、大文字と小文字の区別はデータベースの設定によって異なり、通常は大文字と小文字は区別されません。言語のサポートについては、一部の SQL 言語では case_sensitive がサポートされていないをご覧ください。
例
モデルのすべてのフィルタで大文字と小文字を区別するようにします。
connection: "connection_name"
include: "filename_or_pattern"
case_sensitive: yes
explore: explore_name {...}
モデルのすべてのフィルタで大文字と小文字を区別しないようにします。
connection: "connection_name"
include: "filename_or_pattern"
case_sensitive: no
一般的な課題
一部の SQL 言語では case_sensitive がサポートされていない
Looker プロジェクトで 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+ | |
| 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 は、さまざまなデータベース言語に接続するセマンティック データレイヤを提供します。Looker が基盤となる言語の case_sensitive をサポートしている場合、Looker はそれらの言語に接続する DataVirtuality の case_sensitive をサポートします。
知っておくべきこと
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) ;;
}