資料類型和語意類型

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

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

Community Connector 結構定義和 Looker Studio 欄位

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

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

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

設定語意資訊

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

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

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

如果您知道語意類型,可以為每個結構定義欄位手動定義 semantics。如需可用屬性的完整詳細資料,請參閱欄位參考資料頁面。如果選擇定義手動語意類型,建議您為每個欄位定義 semanticTypesemanticGroup。透過手動提供這些屬性,系統不會執行自動語意類型偵測程序。如果您手動設定部分 (非全部) 欄位,則未指定的預設欄位會是 TextNumberBoolean,視欄位指定的 dataType 而定。

以下是手動設定語意類型的簡單結構定義範例。已設為「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 要求這些欄位。系統會透過設為 truesampleExtraction 參數執行 getData 要求,指出資料要求是用於語意偵測。
  3. 根據欄位資料類型和 getData 要求傳回的值格式,識別欄位的語意類型。

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

當 Looker Studio 為了偵測語意而執行社群連接器的 getData 函式時,傳入的要求會包含設為 truesampleExtraction 屬性。連接器傳回的資料只會用於 Looker Studio 來識別欄位的語意類型。由於該值不會用於任何其他用途,因此不需要外部來源的實際資料。

您可以透過以下幾種方式,改善程式碼中的語意類型偵測功能:

  • 建議:傳遞預先定義的值
    針對代表欄位語意類型且已知會由 Looker Studio 正確偵測的每個欄位傳回預先定義的值。舉例來說,如果欄位的語意類型為「Country」,則會傳回像是義大利的 IT 等值。這種做法的另一個好處是,會比較快,因為不需要向第三方服務提出資料要求 HTTP 要求。

  • 僅傳回n記錄數量
    如果您擷取資料的第三方服務在要求資料時支援資料列限制,則會將一小部分的資料列傳回 Looker Studio,而非完整的資料集。這會限制您必須針對每個語意偵測要求傳送至 Looker Studio 的資料量。

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

  • 「不進行任何操作」
    您可以選擇不為 sampleExtraction 設為 true 的要求實作任何特定輔助。這會導致 Semantic Detection 速度變慢,因為 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 紀元時間。
地理區域