「管理」選單的「資料庫」部分中的「查詢」頁面,會列出 Looker 提交至資料庫的最近 50 項查詢相關資訊。如要查看最近 50 次查詢之前的查詢,請參閱 Looker 的「用量」部分。
基本查詢資訊
| 欄 | 定義 |
|---|---|
| 時間 | 查詢的開始時間,以應用程式時區顯示。 |
| 狀態 | 查詢狀態,可能包括: |
| 連線 | 執行這項查詢的 Looker 連線。 |
| 使用者 | 執行這項查詢的使用者 (如可判斷)。部分查詢並非由特定使用者執行,例如 Looker 建立永久衍生資料表,或是未知使用者存取公開 Look 時。 |
| 來源 | Looker 中的查詢來源,例如「探索」頁面或 SQL Runner。如果可以,系統也會顯示已儲存 Look 的連結,或查詢 ID,以及模型和探索的名稱。部分查詢沒有額外資訊,例如在 SQL Runner 中執行的查詢。從「Open SQL Interface」發出的查詢,其「來源」值為 Sql_interface。 |
| 執行階段 | 執行查詢所花的時間。這包括查詢的建構、查詢在佇列中停留的時間、與資料庫之間的傳輸以及查詢在資料庫中的執行。如果查詢正在執行,執行時間會顯示查詢已執行的時間長度。對於先前執行過的查詢,執行時間也會顯示查詢完成運行所需的估計時間。此估算是基於上次查詢運行的持續時間,會顯示類似「大約 2 秒」的資訊。 |
| 「詳細資料」按鈕 | 有關更多詳細信息,請參閱此頁面上的“詳細信息按鈕”子部分。 |
「詳細資料」按鈕
按一下任何查詢右側的「詳細資料」按鈕,即可查看該查詢的額外資訊。這查詢詳情菜單包括以下內容:
- 「資訊」部分,包含查詢的詳細資料 (請參閱下表)。
- 「SQL」部分,顯示對資料庫執行的原始 SQL。內容註解不會顯示在「查詢詳細資料」資訊中。為避免註解影響查詢快取,Looker 會在將 SQL 傳送至資料庫前,將情境註解新增至傳出的 SQL 指令。
- 透過「開啟 SQL 介面」發出查詢後,系統會顯示「SQL 介面查詢」部分。這個部分會顯示從外部 BI 工具傳送至 Looker 的 SQL 查詢,有助於排解及重現問題。
- 一個 在 SQL Runner 中開啟 鏈接,將在 SQL Runner 中開啟查詢。
「資訊」部分包含下列資訊:
| 區段 | 定義 |
|---|---|
| 歷史 ID | 查詢的 歷史記錄 ID(如果可用)。 |
| 狀態 | 查詢狀態,如基本查詢資訊表所述。 |
| 訊息 | 如果查詢包含 PDT,這個欄位會顯示 PDT 生成註解。如果查詢不含 PDT,就不會顯示這個欄位。 |
| 連線 | 執行這項查詢的 Looker 連線。 |
| 使用者 | 執行這項查詢的使用者 (如可判斷)。部分查詢並非由特定使用者執行,例如 Looker 建立永久衍生資料表,或是未知使用者存取公開 Look 時。 |
| 來源 | Looker 中的查詢來源,例如 Explore 頁面或 SQL Runner。如果可以,系統會顯示其他資訊,例如已儲存 Look 的連結、查詢 ID、模型名稱、探索名稱或所選欄位。 |
| 開始時間 | 查詢的開始時間,以應用程式時區顯示。 |
| 結束時間 | 查詢的完成時間,以您的 應用程式時區 顯示。 |
| 執行階段 | 執行查詢所需的時間長度。 |
終止查詢
對於支援查詢終止的 方言,Looker 可以透過以下方式停止正在執行的查詢:
- 自動: 如果使用者關閉正在執行查詢的瀏覽器分頁,Looker 會自動停止查詢。
- 個別:Looker 管理員可以從查詢管理頁面,點選該查詢的停止按鈕,以停止個別正在執行的查詢。(具備
see_queries權限的使用者可以查看「查詢」頁面,但只有 Looker 管理員可以停止執行中的查詢。) - 批次:Looker 管理員可以使用「查詢」頁面上的緊急查詢清除功能,同時停止整個執行個體或特定資料庫連線的多個執行中查詢。
大量停止查詢
如果 Looker 執行個體因查詢累積而變得不正常或效能降低 (例如,擱置的查詢耗盡可用查詢時段,或「查詢」頁面變慢或沒有回應),Looker 管理員可以大量停止執行查詢,而不需重新啟動執行個體。
如要大量停止查詢,請按照下列步驟操作:
- 在 Looker 中,前往 Admin 選單中的 Queries 頁面。
在瀏覽器網址列中,將
?cleanup=true附加至網址結尾,然後按下 Enter 鍵。例如:https://INSTANCE_NAME.cloud.looker.com/admin/queries?cleanup=true查詢表格上方會顯示「緊急查詢清除」部分。
執行下列任一操作:
- 停止實例中所有正在執行的查詢:按一下終止所有正在執行的查詢。
- 停止特定連接的所有正在執行的查詢:從連接下拉清單中選擇一個資料庫連接,然後按一下終止連接上的查詢。
在確認對話方塊中,確認要終止執行中的查詢。
如果資料庫連線不穩定或無回應導致查詢重複累積,管理員也可以使用以下方法暫時停用連線:停用連接選項連接設定頁。
支援查詢終止的方言
要讓 Looker 終止查詢(無論是透過關閉瀏覽器分頁自動終止、在 查詢 頁面上單獨終止,還是透過緊急查詢清理批次終止),您的資料庫方言必須支援終止查詢。下表顯示了 Looker 最新版本中哪些語言支援查詢終止:
| 方言 | 是否支援? |
|---|---|
| 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 |
查詢逾時和排隊
Looker 會終止在佇列中等待時間過長的查詢。這項作業稱為「逾時」。查詢可能適用多種逾時:
連線集區逾時和並行查詢數量上限:為避免資料庫因並行查詢過多而負載過重,Looker 會將多餘的並行查詢保留在 Looker 查詢佇列中,並終止在佇列中停留過久的查詢。根據預設,每個連線最多可進行 75 個並行查詢。如果查詢次數超過連線限制,系統會在 0 秒後逾時。如要變更這些預設值,請在連線的「連線設定」頁面上,設定「連線數量上限」、「這個連線的並行查詢數量上限」和「連線集區逾時」設定。
個別使用者的查詢限制和逾時:為避免單一使用者填滿 Looker 查詢佇列,每位使用者都有允許的並行查詢數量上限,以及因並行查詢限制而加入佇列的查詢相應佇列逾時。每位使用者的限額適用於使用常規驗證流程登入 Looker 的用戶,以及使用 API 用戶憑證登入的使用者。您可以透過兩種方式定義 Looker 實例上每個使用者連線的最大並發查詢數:
per-user-query-limit啟動選項。這是執行個體層級的設定,可為執行個體上的連線設定預設值。per-user-query-limit啟動選項會限制 Looker 執行個體上每個連線、每個節點的個別使用者並行查詢數量。根據預設,每個有效連線的個別使用者並行查詢數量上限為 15 個。如果 Looker 執行個體是叢集,則叢集中的每個節點也適用這項限制。根據預設,每個使用者在每個節點的每個連線中,最多可並行執行 15 個查詢,逾時時間為 600 秒。舉例來說,如果您有 5 節點叢集,且per-user-query-limit為 15,則每個節點會允許每個使用者對這個連線進行 15 個並行查詢,所有節點加總共 75 個查詢 (15 * 5 = 75)。
如要變更連線的個別使用者查詢限制,請前往連線的「連線設定」頁面,使用「這個連線的個別使用者並行查詢數量上限」設定。如果 Looker 執行個體是由客戶託管,您可以設定
--per-user-query-limit啟動選項,變更每個使用者並行查詢的預設上限,並使用--per-user-query-timeout啟動選項設定佇列逾時。排程器查詢限制和逾時:為避免 Looker 排程器程序過度負載,Looker 執行個體最多可同時執行 10 個排程查詢,排程器佇列中的查詢逾時時間為 1,200 秒。如果 Looker 執行個體是由客戶託管,您可以設定
--scheduler-query-limit和--scheduler-query-timeout啟動選項,變更這些預設值。轉譯器查詢限制和逾時:為避免 Looker 轉譯器程序過載,Looker 執行個體最多可同時轉譯 2 個以圖片為基礎的下載項目,例如 PDF 和 PNG 格式。如果 Looker 執行個體是由客戶託管,您可以設定
--concurrent-render-jobs啟動選項,變更這項預設值。
Proxy 逾時:客戶託管的執行個體通常會使用 Proxy,預設逾時時間為 60 秒。建議將逾時時間延長至 60 分鐘。有關更多信息,請參閱 Looker 社區帖子 在代理伺服器或負載平衡器後運行 Looker。
資料庫逾時: 大多數資料庫都有與 Looker 的佇列和逾時無關的排隊和逾時規則。舉例來說,查詢可能已離開 Looker 佇列,但仍會在資料庫中排隊。如要進一步瞭解如何自訂資料庫查詢逾時,請參閱資料庫的說明文件。