資料類型和語意類型

建構社群連結器時,您在結構定義中定義的每個欄位都需要資料類型。資料類型會定義欄位的原始類型,例如 BOOLEANSTRINGNUMBER 等。

除了資料類型,Looker Studio 也會使用語意類型。語意類型有助於描述資料代表的資訊類型。舉例來說,NUMBER 資料類型的欄位在語意上可能代表貨幣金額或百分比,而 STRING 資料類型的欄位在語意上可能代表城市。如要查看可用的語意類型,請參閱語意類型說明文件

社群連接器結構定義和 Looker Studio 欄位

定義社群連接器的結構定義時,每個欄位都有各種屬性,可決定欄位在 Looker Studio 中的呈現和使用方式。例如:

  • conceptType 是使用 conceptType 屬性在連接器結構定義中定義。這項屬性會決定欄位是否視為維度或指標。如要瞭解指標和維度的差異,請參閱「維度和指標」。
  • 語意類型可定義於連接器結構定義中,或由 Looker Studio 根據連接器中定義的資料類型屬性,以及連接器傳回的資料值自動偵測。如要進一步瞭解相關運作方式,請參閱「自動偵測語意類型」。
  • 匯總類型會決定指標值 (系統會忽略維度) 是否可以重新匯總。將 semantics.isReaggregatable 屬性設為 true 時,系統會預設為 SUM 彙整,否則會設為 Auto。您也可以使用 defaultAggregationType 屬性,手動為可重新匯總的欄位設定預設匯總類型。

在 Looker Studio 中使用連接器設定及連線時,欄位編輯器會根據您定義的上述屬性,顯示連接器的完整架構。如果已加入語意類型,系統就會按照您的定義顯示。如果您使用自動語意類型偵測,系統會顯示偵測到的欄位。「欄位」畫面

設定語意資訊

設定語意資訊的方法有兩種。您可以手動設定欄位語意,也可以讓 Looker Studio 自動偵測。

舉例來說,如果數字在語意上代表美元,Looker Studio 就無法自動偵測到這個語意類型。此外,自動語意偵測功能需要 Looker Studio 為結構定義的每個欄位發出資料擷取呼叫。如果您改為手動指定結構定義,系統就不會發出任何資料擷取呼叫。如果您知道資料的語意類型 (例如貨幣、百分比、日期等),建議在結構定義中明確設定,以確保資料準確性並提升效能。

手動設定語意類型 (建議)

如果您知道語意類型,可以為每個結構定義欄位手動定義 semantics。如要進一步瞭解可用的屬性,請參閱欄位參考資料頁面。如果您選擇定義手動語意類型,建議為每個欄位定義 semanticTypesemanticGroup。手動提供這些屬性後,系統就不會執行自動語意類型偵測程序。如果您手動設定部分欄位,但未設定所有欄位,則未指定的欄位會根據為該欄位指定的 dataType,預設為 TextNumberBoolean

以下是簡單的結構定義範例,可手動設定語意型別。Income 設為「貨幣」,而 Filing Year 設為日期。

data-studio/semantics.gs
var schema = [
  {
    'name': 'Income',
    'label': 'Income (in USD)',
    'dataType': 'NUMBER',
    'semantics': {
      'conceptType': 'METRIC',
      'semanticGroup': 'CURRENCY',
      'semanticType': 'CURRENCY_USD'
    }
  }, {
    'name': 'Filing Year',
    'label': 'Year in which you filed the taxes.',
    'dataType': 'STRING',
    'semantics': {
      'conceptType': 'METRIC',
      'semanticGroup': 'DATE_OR_TIME',
      'semanticType': 'YEAR'
    }
  }
];

排解手動語意類型問題

如果為基礎資料設定的語意類型不正確,系統就無法正常運作。這項測試可能較為困難,但您可以採取一些做法來找出問題。

  1. 從資料中傳回 2 或 3 列,而非所有資料,然後手動檢查。
  2. 在 Looker Studio 中建立表格,只使用您要檢查的欄位。
  3. 請特別留意 GeoDate 欄位,因為這兩個欄位的格式最嚴格。

自動偵測語意型別

如果未在結構定義中定義任何語意類型,Looker Studio 會嘗試根據資料類型屬性和連接器傳回的資料值格式,自動偵測語意類型。

自動偵測程序的步驟如下:

  1. 執行社群連結器的 getSchema 函式,要求結構定義。
  2. 反覆處理連接器結構定義中定義的欄位批次,並對這些欄位發出 getData 要求。系統會執行 getData 要求,並將 sampleExtraction 參數設為 true,表示資料要求是為了進行語意偵測。
  3. 根據欄位資料類型和從 getData 要求傳回的值格式,找出欄位的語意類型。

處理自動語意類型偵測的選項

當 Looker Studio 執行社群連接器的 getData 函式以進行語意偵測時,傳入的要求會包含 sampleExtraction 屬性,且該屬性會設為 true。Looker Studio 只會使用連接器傳回的資料,判斷欄位的語意類型。由於這個值不會用於其他用途,因此不需要外部來源的實際資料。

您可以透過幾種方式改善程式碼中的語意型別偵測:

  • 建議:傳遞預先定義的值
    針對每個欄位傳回最能代表語意類型的值,且 Looker Studio 已知可正確偵測該值。 舉例來說,如果欄位的語意類型為「國家/地區」,則傳回的值應為「義大利」IT。這種做法的另一個好處是速度快得多,因為您不必向第三方服務發出 HTTP 資料要求。

  • 只傳回 n 筆記錄
    如果您從中擷取資料的第三方服務在要求資料時支援列數限制,請傳回一小部分列給 Looker Studio,而非完整資料集。這樣一來,您在每個語意偵測要求中傳遞給 Looker Studio 的資料量就會受到限制。

  • 要求所有資料欄並快取回應
    如果可以從擷取資料的第三方服務要求所有資料欄,請在 Looker Studio 收到第一個語意偵測要求時,擷取所有資料欄並快取結果。對於後續的語意偵測要求,系統會從快取擷取欄值,而不是向第三方服務發出額外的 HTTP 要求。

  • 不採取任何不同做法
    您可以選擇不針對設為 true 的要求實作任何特定調整措施。sampleExtraction這會導致語意偵測程序變慢,因為 Looker Studio 必須擷取所有資料才能進行語意偵測程序。此外,由於系統會平行執行許多語意偵測要求,這也會影響外部資料來源的要求率。

自動偵測語意類型時可辨識的格式

日期與時間
  • YYYY/MM/DD-HH:MM:SS
  • YYYY-MM-DD [HH:MM:SS[.uuuuuu]]
  • YYYY/MM/DD [HH:MM:SS[.uuuuuu]]
  • YYYYMMDD [HH:MM:SS[.uuuuuu]]
  • Sat, 24 May 2008 20:09:47 GMT
  • 2008-05-24T20:09:47Z
  • 時間:以秒、微秒、毫秒和奈秒為單位的 Epoch。
地理區域