Looker の LookML セマンティック モデリング レイヤを使用すると、データ アナリストは SQL データベース内のディメンション、集計、計算、データのリレーションシップを定義できます。LookML モデルを使用することで、コードの再利用と Git との統合が可能になります。LookML モデルが適切に構造化されていると、ユーザーはセルフサービスのデータ探索とレポート作成を独自に行うことができます。
LookML モデルは、Looker からリクエストされるあらゆるデータの基盤となります。これは、リクエストが Looker UI の Looker Explore インターフェースから送られてくる場合であろうと、会社のポータルや別のサードパーティ アプリケーションに埋め込まれた可視化や、Looker API で開発されたカスタム アプリケーションから送られてくる場合であろうと同様です。Open SQL インターフェースを使用すると、Java Database Connectivity(JDBC)をサポートするサードパーティ アプリケーションから LookML モデルにアクセスできます。アプリケーションは、データベースであるかのように LookML モデルに接続できるため、ユーザーは使い慣れたツールを使用しながら、LookML モデルでデータ アナリストが行った作業をすべて活用できます。
Open SQL インターフェースが LookML プロジェクトの要素を表示する方法
Open SQL インターフェースが LookML プロジェクトの要素をどのように表示するかを理解するには、LookML プロジェクトの構造を理解する必要があります。
LookML プロジェクトは、SQL クエリを Looker 内で実行するために使われるオブジェクト、データベース接続、ユーザー インターフェース要素を記述するファイルのコレクションです(詳しくは LookML の用語とコンセプトをご覧ください)。次の LookML プロジェクト コンセプトは、Open SQL インターフェースに関連しています。
- LookML モデルは、データベース接続と 1 つ以上の Explore を指定します。Open SQL インターフェースは、モデルをデータベース スキーマとして表示します。
- Explore は、1 つ以上のビューの論理グループとそのビュー間の結合関係です。Open SQL インターフェースは、Explore をデータベース テーブルとして表示します。
- ビューは、フィールド(ディメンションとメジャーの両方)のコレクションを定義します。ビューは通常、データベース内のテーブルまたは派生テーブルに基づいています。ビューには、基盤となるデータベース テーブルの列と、エンドユーザーが必要とするカスタム ディメンションまたはカスタム メジャーを含めることができます。Open SQL インターフェースは、ビュー名とフィールド名の組み合わせをデータベース列名として表示します。たとえば、
order_items
ビューのid
ディメンションは、Open SQL インターフェースによってorder_items.id
というデータベース列として表示されます。
Looker Explore では、複数のビュー間の結合関係を定義できます。あるビューは、別のビューのフィールドと同じ名前のフィールドを持つことがあるため、Open SQL インターフェースでは、列を参照する際にビュー名とフィールド名の両方が含まれます。そのため、次の形式を使用して、Open SQL インターフェースにクエリを送信するときに列名を参照します。
`<view_name>.<field_name>`
たとえば、customer
というビューを product
というビューに結合する order_items
という名前の Explore があり、その両方のビューに id
ディメンションがある場合、2 つの id
フィールドをそれぞれ `customer.id`
と `product.id`
として参照します。Explore 名でも完全修飾名を使用する場合は、2 つのフィールドを `order_items`.`customer.id`
と `order_items`.`product.id`
として参照します(データベース識別子を参照するときにバッククォートを配置する場所については、データベース識別子のバッククォートを使用するをご覧ください)。
Open SQL インターフェースの設定
Open SQL インターフェースを使用するには、次の手順を行います。
- 要件を満たしていることを確認する。
- Open SQL インターフェース JDBC ドライバ ファイルをダウンロードする。
以降のセクションでは、これらの手順について説明します。
要件
Open SQL インターフェースを使用するには、次のコンポーネントが必要です。
- 使用するサードパーティ アプリケーション(Tableau、ThoughtSpot、カスタマイズされたアプリケーションなど)が Looker インスタンスに接続できる必要があります。Looker インスタンスがサードパーティ アプリケーションからアクセスできるようにネットワーク接続されていれば、セルフホスト型 Looker インスタンスで Open SQL インターフェースを使用できます。
- Google BigQuery 接続のデータを使用する LookML プロジェクト(LookML プロジェクトには、
connection
パラメータで Google BigQuery 接続を指定するモデルファイルが必要です)。 - Open SQL インターフェースでアクセスする LookML モデルに対する
explore
権限を含む Looker ユーザーロール。
Open SQL インターフェース JDBC ドライバをダウンロードする
Looker Open SQL インターフェース JDBC ドライバは avatica-<release_number>-looker.jar
と呼ばれます。GitHub の https://github.com/looker-open-source/calcite-avatica/releases から最新バージョンをダウンロードします。
JDBC ドライバは次の URL 形式を想定しています。
jdbc:looker:url=https://Looker instance URL
例:
jdbc:looker:url=https://myInstance.cloud.looker.com
JDBC ドライバのクラスは次のとおりです。
org.apache.calcite.avatica.remote.looker.LookerDriver
Open SQL インターフェースの認証
Open SQL インターフェースでは、次の 3 つの認証方法がサポートされています。
OAuth
OAuth をサポートする JDBC クライアントは、Looker インスタンスの OAuth サーバーを使用するように構成できます。OAuth 認証を構成する手順は次のとおりです。
- API Explorer 拡張機能を使用して、JDBC OAuth クライアントを Looker インスタンスに登録します。これにより、Looker インスタンスが OAuth リクエストを認識できるようになります。手順については、OAuth クライアント アプリケーションの登録をご覧ください。
- OAuth で Looker にログインして、アクセス トークンをリクエストします。例については、OAuth を使用してユーザー ログインを行うをご覧ください。
- Open SQL インターフェースへの JDBC 接続を開くときに、OAuth 認証情報を渡すには、プロパティ オブジェクトを使用します。
DriverManager#getConnection(<String>, <Properties>
`) を使用した例を次に示します。
String access_token = getAccessToken() //uses the Looker OAuth flow to get a token
String URL = "jdbc:looker:url=https://myInstance.cloud.looker.com"
Properties info = new Properties( );
info.put("token", access_token);
Connection conn = DriverManager.getConnection(URL, info);
API キーを使用したアクセス トークンの生成
アクセス トークンの生成に標準の OAuth フローを使用する代わりに、次の手順に従って、Looker API を使用して Open SQL インターフェース JDBC ドライバに渡すことができるアクセス トークンを生成できます。
- 管理者設定 - ユーザーのページの説明に沿って、Looker ユーザーの API キーを生成します。
Looker インスタンスの
login
API エンドポイントを使用します。レスポンスには、Authorization: token <access_token>
形式のアクセス トークンが含まれます。このリクエストを行うために使用できる curl コマンドの例を次に示します。curl -k -d "client_id=<client_id>&client_secret=<client_secret>" https://<looker_host>/login\
Open SQL インターフェースへの JDBC 接続を開くときに OAuth 認証情報を渡すには、Properties オブジェクトでトークンとしてレスポンスの
<access_token>
値を渡します。
API キー
API キーを使用して、ユーザー名とパスワードの代わりに認証を行うこともできます。API キーは OAuth よりも安全性が低いと判断され、Open SQL インターフェースのプレビュー中にのみ使用できます。Looker インスタンスの API キーの作成については、API キーをご覧ください。
Looker API キーのクライアント ID 部分をユーザー名として使用します。パスワードには [クライアント シークレット] 部分を使用します。
Open SQL インターフェースでのクエリの実行
Open SQL インターフェースを使用してクエリを実行する場合は、次のガイドラインに従ってください。
- Open SQL インターフェースは、GoogleSQL 構文に準拠する SQL クエリを受け入れます。
- Open SQL インターフェースでは、モデル、Explore、フィールド識別子をバッククォート(`)で囲む必要があります。詳細と例については、データベース識別子のバッククォートを使用するをご覧ください。
- Open SQL インターフェースは、ほとんどの BigQuery 演算子をサポートしています。
- Open SQL インターフェースでは、measure(バッククォートを含む)を特別な関数
AGGREGATE()
でラップして、クエリに含まれる LookML measure を指定する必要があります。AGGREGATE()
で LookML measure を指定するセクションをご覧ください。
SQL の制限事項
Open SQL インターフェースにクエリを送信する場合は、次の SQL の制限事項に注意してください。
- Open SQL インターフェースは、
SELECT
クエリのみをサポートします。Open SQL インターフェースは、UPDATE
ステートメントとDELETE
ステートメント、またはその他のデータ定義言語(DDL)、データ操作言語(DML)またはデータ制御言語(DCL)のステートメントをサポートしていません。 - Open SQL インターフェースは、
JOIN
演算子をサポートしていません。 - Open SQL インターフェースは、ウィンドウ関数の呼び出しをサポートしていません。
- Open SQL インターフェースは、サブクエリをサポートしていません。
- Open SQL インターフェースは、タイムゾーンの変換をサポートしていません。LookML モデルの日時は、設定(ユーザーのタイムゾーン、アプリケーションのタイムゾーン、データベースのタイムゾーンの設定)で定義されているタイムゾーンで
DATETIME
型になります。 - Open SQL インターフェースは、BigQuery のデータ型 geography、JSON、時間をサポートしていません。
データベース識別子のバッククォートを使用する
Open SQL インターフェースにクエリを送信する場合は、スキーマ、テーブル、列の識別子をバッククォートで囲みます。Looker の利用規約でバッククォートを使用してデータベース要素を指定する方法は次のとおりです。
- スキーマ:
`<model_name>`
- テーブル:
`<explore_name>`
列:
`<view_name>.<field_name>`
これらの要素を使用した SELECT
ステートメントの形式の例を次に示します。
SELECT `view.field`
FROM `model`.`explore`
LIMIT 10;
AGGREGATE()
で LookML measure を指定する
通常、データベース テーブルにはディメンションのみが含まれます。ディメンションは、テーブル内の行に関する単一の属性を記述するデータです。ただし、LookML プロジェクトでは、ディメンションとメジャーの両方を定義できます。メジャーは、複数の行にわたるデータの集計です(SUM
、AVG
、MIN
、MAX
など)(他のタイプのメジャーもサポートされています。サポートされている LookML メジャーのタイプの一覧については、メジャーのタイプのページをご覧ください)。
Open SQL インターフェースでは、measure(バッククォートを含む)を特別な関数 AGGREGATE()
でラップして、クエリに含まれる LookML measure を指定する必要があります。たとえば、これを使用して、オーダー ビューから カウント メジャーを指定します。
AGGREGATE(`orders.count`)
LookML measure は、SELECT
句、HAVING
句、ORDER BY
句のいずれにあっても、AGGREGATE()
関数でラップする必要があります。
フィールドが LookML 測定値かどうかわからない場合は、DatabaseMetaData.getColumns
メソッドを使用して LookML プロジェクトのメタデータにアクセスできます。IS_GENERATEDCOLUMN
列は、LookML メジャーの場合は YES
、LookML ディメンションの場合は NO
を示します。詳細については、データベース メタデータへのアクセスをご覧ください。
JSON_OBJECT
を使用してフィルタ限定のフィールドとパラメータを指定する
Open SQL インターフェースは、パラメータとフィルタ専用フィールドをサポートしています。
Open SQL インターフェースを使用してクエリを実行する場合、次の形式で JSON_OBJECT
コンストラクタ呼び出しを含めることで、パラメータとフィルタ限定フィールドをクエリに適用できます。
JSON_OBJECT(
'<view>.<parameter name>', '<parameter value>',
'<view>.<filter name>', '<Looker filter expression>'
)
JSON オブジェクトには、0 個以上のフィルタ Key-Value ペアと 0 個以上のパラメータ Key-Value ペアを含めることができます。
JSON_OBJECT
コンストラクタのキーは、フィルタ限定フィールドまたはパラメータの名前にする必要があります。- フィルタ限定のフィールドの場合、各キーの値は Looker 文字列フィルタ式である必要があります。
- パラメータの場合、各キーの値は、
parameter
定義で定義されている書式なし値でなければなりません。
Open SQL インターフェースでパラメータとフィルタ限定のフィールドを使用する例については、以下のセクションをご覧ください。
パラメータの例
Open SQL インターフェースで parameter
を使用する例として、customers
ビューに Looker で次のように定義されたパラメータがあるとします。
parameter: segment {
type: string
allowed_value: {
label: "Small (less than 500)"
value: "small_customers"
}
allowed_value: {
label: "Larger (greater than 10,000)"
value: "large_customers"
}
allowed_value: {
label: "Medium customers (Between 500 and 10,000)"
value: "medium_customers"
}
}
このクエリを Open SQL インターフェースに送信して、medium_customers
の segment
パラメータ値をクエリに適用できます。
SELECT `customers.segment_size`,
AGGREGATE(`orders.total_amount`)
FROM `ecommerce`.`orders`(JSON_OBJECT(
'customers.segment', 'medium_customers'
))
GROUP BY `customers.state`, `customers.city`
HAVING AGGREGATE(`orders.count`) > 10
ORDER BY 3 DESC LIMIT 5;
Open SQL インターフェースは、このパラメータ値を Looker のクエリに渡し、Looker は segment
パラメータを使用するように構成されている Explore のすべてのフィールドに medium_customers
値を適用します。Looker でのパラメータの仕組みについては、parameter
のドキュメントをご覧ください。
フィルタ限定フィールドの例
Open SQL インターフェースでは filter
フィールドを使用できます。たとえば、products
ビューにディメンションとフィルタ限定フィールドが Looker で次のように定義されているとします。
filter: brand_select {
type: string
}
dimension: brand_comparitor {
sql:
CASE
WHEN {% condition brand_select %} ${products.brand_name} {% endcondition %}
THEN ${products.brand_name}
ELSE "All Other Brands"
END ;;
}
次のようなクエリを送信することで、Open SQL インターフェースで brand_select
フィルタを使用できます。
SELECT `products.brand_comparator`, `products.number_of_brands`,
AGGREGATE(`products.total_revenue`)
FROM `ecommerce`.`orders`(JSON_OBJECT(
'products.brand_select', '%Santa Cruz%'
))
GROUP BY `products.brand_comparator`
ORDER BY 3 DESC LIMIT 5;
Open SQL インターフェースは、Looker 文字列フィルタ式 %Santa Cruz%
を Looker のクエリに適用します。Looker でのフィルタ限定フィールドの仕組みについては、filter
のドキュメントをご覧ください。
WHERE
句または HAVING
句で always_filter
値または conditionally_filter
値を指定する
Open SQL インターフェースは、always_filter
または conditionally_filter
のいずれかを含む Explore をサポートできますが、両方を含む Explore はサポートできません。
LookML Explore を always_filter
または conditionally_filter
で定義している場合は、SQL クエリのフィルタ フィールドの値を Open SQL インターフェースに渡す必要があります。
- フィルタ定義で 1 つ以上のディメンションが指定されている場合は、フィルタ ディメンションごとに SQL クエリに
WHERE
句を含める必要があります。 - フィルタ定義で 1 つ以上のメジャーを指定する場合は、フィルタ メジャーごとに SQL クエリに
HAVING
句を含める必要があります。
たとえば、country
ディメンション、aircraft_category
ディメンション、count
指標を指定する always_filter
パラメータを使用して LookML Explore flights
を定義した faa
モデルがあるとします。
explore: flights {
view_name: flights
always_filter: {
filters: [country : "Peru" , aircraft_category : "Airplane", count : ">1"]
}
}
Open SQL インターフェースへのクエリでは、WHERE
句を使用してフィルタ ディメンションの値を渡し、HAVING
句を使用してメジャー フィルタの値を LookML モデルに渡す必要があります。次に例を示します。
SELECT
`flights.make`
FROM
`faa`.`flights`
WHERE `flights.country` = 'Ecuador' AND `flights.aircraft_category` = 'Airplane'
GROUP BY
1
HAVING `flights.count` > 2)
LIMIT 5
always_filter
パラメータで指定されたディメンションと指標のそれぞれにフィルタ値を渡さない場合、クエリはエラーを返します。conditionally_filter
パラメータで指定されたディメンションとメジャーについても同様です。ただし、次のように unless
サブパラメータを使用して conditionally_filter
パラメータを定義できます。
explore: flights {
view_name: flights
conditionally_filter: {
filters: [country : "Peru" , aircraft_category : "Airplane"]
unless: [count]
}
}
この場合、conditionally_filter
の filters
サブパラメータで指定されたディメンションと指標ごとにフィルタ値を渡す必要があります。ただし、unless
サブパラメータのフィールドにフィルタを指定する場合は除きます。(unless
サブパラメータの使用方法については、conditionally_filter
のドキュメント ページをご覧ください)。
たとえば、Open SQL インターフェースに対する次のいずれかのクエリは有効です。最初のクエリは filters
サブパラメータで指定されたフィールドのフィルタ値を返し、2 番目のクエリは unless
サブパラメータで指定されたフィールドのフィルタ値を返します。
SELECT
`flights.make`
FROM
`faa`.`flights`
WHERE `flights.country` = 'Ecuador' AND `flights.aircraft_category` = 'Airplane'
LIMIT 5
SELECT
`flights.make`
FROM
`faa`.`flights`
GROUP BY
1
HAVING `flights.count` > 2
例
ディメンションとメジャーの両方を使用するクエリの例を次に示します。このクエリでは、顧客ビューから状態ディメンションと都市のディメンションを取得し、[注文] ビューから合計金額 メジャーを取得します。これらのビューはどちらも、ecommerce モデルの orders Explore に結合されています。注文が 10 件を超える都市の場合、このクエリ レスポンスで注文金額の上位 5 都市が表示されます。
SELECT `customers.state`, `customers.city`,
AGGREGATE(`orders.total_amount`)
FROM `ecommerce`.`orders`
GROUP BY `customers.state`, `customers.city`
HAVING AGGREGATE(`orders.count`) > 10
ORDER BY 3 DESC LIMIT 5;
データベース メタデータへのアクセス
Open SQL インターフェースは、基盤となるデータベースに関する情報の取得に使用される標準 JDBC DatabaseMetaData インターフェースのサブセットをサポートしています。DatabaseMetaData インターフェースの次のメソッドを使用して、LookML モデルに関する情報を取得できます。
Open SQL インターフェースは、アクセスできるモデル、Explore、フィールドに対してのみ結果を返します。
DatabaseMetadata.getSchemas
次の表に、LookML モデルと標準データベース構造が、DatabaseMetadata.getSchemas
インターフェース メソッドのレスポンスでどのように関連しているかを示します。
getSchemas レスポンス列 |
説明 |
---|---|
TABLE_SCHEM |
LookML モデル名 |
TABLE_CATALOG |
(Null) |
DatabaseMetadata.getTables
次の表に、LookML モデルとデータベース構造が、DatabaseMetaData.getTables
インターフェース メソッドのレスポンスでどのように関連しているかを示します。レスポンスには、標準の JDBC メタデータと Looker 固有のメタデータが含まれます。
getTables レスポンス列 |
説明 |
---|---|
JDBC 標準メタデータ | |
TABLE_CAT |
(Null) |
TABLE_SCHEM |
LookML モデル名 |
TABLE_NAME |
LookML Explore の名前 |
TABLE_TYPE |
常に値 TABLE_TYPE を返します。 |
REMARKS |
(Null) |
TYPE_CAT |
(Null) |
TYPE_SCHEM |
(Null) |
TYPE_NAME |
テーブルのタイプを表す文字列。指定できるタイプは TABLE 、VIEW 、SYSTEM TABLE 、GLOBAL TEMPORARY 、LOCAL TEMPORARY 、ALIAS 、SYNONYM です。 |
SELF_REFERENCING_COL_NAME |
(Null) |
REF_GENERATION |
(Null) |
Looker 固有のメタデータ | |
DESCRIPTION |
Explore 説明 |
LABEL |
Explore ラベル |
TAGS |
Explore タグ |
CONDITIONALLY_FILTER_UNLESS |
Explore の conditionally_filter パラメータの unless サブパラメータのフィールドのリスト。unless サブパラメータで指定されたフィールドがない場合、またはエクスプローラに conditionally_filter パラメータが定義されていない場合、この値は null になります。 |
DatabaseMetadata.getColumns
次の表に、LookML モデルとデータベース構造が、DatabaseMetaData.getColumns
インターフェース メソッドのレスポンスでどのように関連しているかを示します。レスポンスには、標準の JDBC メタデータと Looker 固有のメタデータが含まれます。
getColumns レスポンス列 |
説明 |
---|---|
JDBC 標準メタデータ | |
TABLE_CAT |
(Null) |
TABLE_SCHEM |
LookML モデル名 |
TABLE_NAME |
LookML Explore の名前 |
COLUMN_NAME |
`<view_name>.<field_name>` 形式の LookML フィールド名。例: `orders.amount` |
DATA_TYPE |
列の java.sql.Types コード。たとえば、Looker yesno フィールドは SQL 型コード 16 (BOOLEAN)です。 |
TYPE_NAME |
列のデータ型を表す文字列。ユーザー定義型(UDT)の場合、型名は完全修飾されます。 |
COLUMN_SIZE |
列に格納できる最大文字数またはバイト数を表す整数。 |
BUFFER_LENGTH |
(Null) |
DECIMAL_DIGITS |
データのスケールを表す整数。適用可能なデータ型の場合は小数点以下の桁数、または小数部の桁数。DECIMAL_DIGITS が適用されないデータ型の場合は、Null が返されます。 |
NUM_PREC_RADIX |
データの基数(通常は 10 または 2)を表す整数。 |
NULLABLE |
null 値が許可されているかどうかを示す整数:
|
REMARKS |
(Null) |
COLUMN_DEF |
(Null) |
SQL_DATA_TYPE |
(Null) |
SQL_DATETIME_SUB |
(Null) |
CHAR_OCTET_LENGTH |
文字データ型の場合、列の最大バイト数を表す整数。 |
ORDINAL_POSITION |
Explore 内のフィールドの 1 から始まる序数(ビュー名、フィールド名ごとにディメンションと measure をアルファベット順で混合) |
IS_NULLABLE |
常に値 YES を返します。 |
SCOPE_CATALOG |
(Null) |
SCOPE_SCHEMA |
(Null) |
SCOPE_TABLE |
(Null) |
SOURCE_DATA_TYPE |
(Null) |
IS_AUTOINCREMENT |
(Null) |
IS_GENERATEDCOLUMN |
measure の場合は YES 、ディメンションの場合は NO |
Looker 固有のメタデータ | |
DIMENSION_GROUP |
フィールドがディメンショングループの一部である場合は、ディメンショングループの名前。フィールドがディメンショングループの一部でない場合、この値は null になります。 |
DRILL_FIELDS |
ディメンションまたは measure に対して設定されたドリル フィールドのリスト(ある場合) |
FIELD_ALIAS |
フィールドのエイリアス(存在する場合) |
FIELD_CATEGORY |
フィールドが dimension か measure か |
FIELD_DESCRIPTION |
フィールドの説明 |
FIELD_GROUP_VARIANT |
フィールドがフィールドのグループラベルの下に表示される場合、FIELD_GROUP_VARIANT はグループラベルの下に表示されるフィールドの短い名前を指定します。 |
FIELD_LABEL |
フィールド ラベル |
FIELD_NAME |
ディメンションまたは measure の名前 |
LOOKER_TYPE |
ディメンションまたは measure の LookML フィールド タイプ |
REQUIRES_REFRESH_ON_SORT |
フィールドの値を再並べ替えするために SQL クエリを更新する必要があるか(TRUE )、または SQL クエリを更新を必要とせず、フィールドの値を再並べ替えできるかどうか(FALSE )。 |
SORTABLE |
フィールドを並べ替えられる(TRUE )か、並べ替えることができない(FALSE )か |
TAGS |
フィールド tags |
USE_STRICT_VALUE_FORMAT |
フィールドで strict value formatを使用している(TRUE )かしていない(FALSE )か |
VALUE_FORMAT |
フィールドの Value format 文字列 |
VIEW_LABEL |
フィールドの View label |
VIEW_NAME |
LookML プロジェクトでフィールドが定義されているビューの名前 |
HIDDEN |
Explore のフィールド ピッカーでフィールドが非表示であるか(TRUE )、または Explore のフィールド ピッカーにフィールドが表示されているか(FALSE )。 |
ALWAYS_FILTER |
フィールドに設定されている always_filter パラメータのデフォルト値。フィールドが always_filter パラメータの一部でない場合、この値は null です。 |
CONDITIONALLY_FILTER |
フィールドに設定されている conditionally_filter パラメータのデフォルト値。フィールドが conditionally_filter パラメータの一部でない場合、この値は null です。 |
Looker UI での Open SQL インターフェース クエリの特定
Looker 管理者は Looker UI を使用して、Open SQL インターフェースから発信されたクエリを特定できます。
- クエリ管理ページでは、Open SQL インターフェースからのクエリの Source の値は「SQL Interface」になります。[User] の値には、クエリを実行した Looker ユーザーの名前が表示されます。クエリの [詳細] ボタンをクリックすると、そのクエリに関する追加情報が表示されます。[詳細] ダイアログで [SQL インターフェースのクエリ] をクリックすると、Open SQL インターフェースから Looker に送信された SQL クエリを確認できます。
System Activity Explore の履歴 で、Open SQL インターフェースからのクエリの [Source] の値は「sql_interface」になります。[User Email] の値には、クエリを実行した Looker ユーザーのメールアドレスが表示されます。次の URL の冒頭に Looker インスタンスのアドレスを挿入すると、[sql_interface] でフィルタされた [History] Explore に直接移動できます。
https://Looker instance URL/explore/system__activity/history?fields=history.source,history.completed_date&f[history.source]=%22sql_interface%22
サードパーティの依存関係のリポジトリ
次のリンクから、Looker JDBC ドライバで使用されるサードパーティ依存関係の Google Cloud がホストするリポジトリにアクセスできます。
https://third-party-mirror.googlesource.com/looker_sql_interface/+/refs/heads/master/third_party/