管理員設定 - 查詢

「管理」選單的「資料庫」部分中的「查詢」頁面,會列出 Looker 提交至資料庫的最近 50 項查詢相關資訊。如要查看最近 50 次查詢之前的查詢,請參閱 Looker 的「用量」部分。

基本查詢資訊

定義
時間 查詢的開始時間,以應用程式時區顯示。
狀態 查詢狀態,可能包括:
  • 快取:Looker 從快取傳回結果,而不是對資料庫執行重複查詢。
  • 完成:查詢已成功完成。
  • 錯誤:查詢未成功完成,因為發生錯誤,點選詳細資料按鈕可查看詳細資料。
  • 已取消:查詢已由 Looker 或使用者取消。
  • 等待 PDT:查詢需要等待系統建構永久衍生資料表,才能執行。
  • 正在建構 PDT:系統正在建構永久衍生資料表
  • 已排隊:查詢正在等待執行,因為有太多查詢正在進行中(查詢可以透過 Looker 在您的 連接設定 或資料庫中進行限制)。
  • 執行中:查詢正在執行。
  • 不明: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 管理員可以大量停止執行查詢,而不需重新啟動執行個體。

如要大量停止查詢,請按照下列步驟操作:

  1. 在 Looker 中,前往 Admin 選單中的 Queries 頁面。
  2. 在瀏覽器網址列中,將 ?cleanup=true 附加至網址結尾,然後按下 Enter 鍵。例如:

    https://INSTANCE_NAME.cloud.looker.com/admin/queries?cleanup=true
    
  3. 查詢表格上方會顯示「緊急查詢清除」部分。

  4. 執行下列任一操作:

    • 停止實例中所有正在執行的查詢:按一下終止所有正在執行的查詢
    • 停止特定連接的所有正在執行的查詢:從連接下拉清單中選擇一個資料庫連接,然後按一下終止連接上的查詢
  5. 在確認對話方塊中,確認要終止執行中的查詢。

如果資料庫連線不穩定或無回應導致查詢重複累積,管理員也可以使用以下方法暫時停用連線:停用連接選項連接設定頁。

支援查詢終止的方言

要讓 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啟動選項設定佇列逾時。

    • 連線「連線設定」中的「這個連線的個別使用者並行查詢數量上限」選項。「這個連線的個別使用者並行查詢數量上限」設定的預設值為 25,且適用於每個使用者和連線,但不適用於每個節點。舉例來說,如果您有 5 個節點的叢集,並將這個值設為 15,則每個節點會允許每個使用者針對這個連線執行 3 個並行查詢 (15 / 5 = 3),所有節點加總共可執行 15 個查詢。對於連接,如果為 此連接的每個使用者的最大並發查詢數 設定提供了值,則 此連接的每個使用者的最大並發查詢數 值將覆蓋連接的 per-user-query-limit 啟動選項。
  • 排程器查詢限制和逾時:為避免 Looker 排程器程序過度負載,Looker 執行個體最多可同時執行 10 個排程查詢,排程器佇列中的查詢逾時時間為 1,200 秒。如果 Looker 執行個體是由客戶託管,您可以設定 --scheduler-query-limit--scheduler-query-timeout 啟動選項,變更這些預設值。

  • 轉譯器查詢限制和逾時:為避免 Looker 轉譯器程序過載,Looker 執行個體最多可同時轉譯 2 個以圖片為基礎的下載項目,例如 PDF 和 PNG 格式。如果 Looker 執行個體是由客戶託管,您可以設定 --concurrent-render-jobs 啟動選項,變更這項預設值。

  • Webhook 逾時:Looker 最多會嘗試 30 分鐘,將資料傳送至 Webhook。如果 Looker 無法在 30 分鐘內與 Webhook 目的地通訊,查詢就會逾時。這個逾時時間無法設定。
    • Proxy 逾時:客戶託管的執行個體通常會使用 Proxy,預設逾時時間為 60 秒。建議將逾時時間延長至 60 分鐘。有關更多信息,請參閱 Looker 社區帖子 在代理伺服器或負載平衡器後運行 Looker

    • 資料庫逾時: 大多數資料庫都有與 Looker 的佇列和逾時無關的排隊和逾時規則。舉例來說,查詢可能已離開 Looker 佇列,但仍會在資料庫中排隊。如要進一步瞭解如何自訂資料庫查詢逾時,請參閱資料庫的說明文件。