Primärschlüssel

Nutzung

view: view_name {
Dimension: Feldname {
primary_key: yes
}
}
Hierarchie
primary_key
Mögliche Feldtypen
Dimension

Akzeptiert
Ein boolescher Wert (ja oder nein)

Definition

Der Parameter primary_key gibt an, dass eine Dimension der Primärschlüssel für die Ansicht ist. Der Standardwert ist false. Beispiel:

dimension: id {
  primary_key: yes
  sql: ${TABLE}.id ;;
}

Der Parameter primary_key hat die folgenden Eigenschaften und Anforderungen:

Zusammengesetzten Primärschlüssel erstellen

Wenn Sie einen Primärschlüssel haben, der aus mehreren Spalten besteht, können Sie eine Dimension erstellen, die diese Spalten verkettet, und dann als Primärschlüssel festlegen. Beispiel:

dimension: primary_key {
  primary_key: yes
  sql: CONCAT(${TABLE}.promotion_id, ${TABLE}.sku) ;;
}

CONCAT funktioniert in einigen Datenbanken, z. B. in MySQL, in anderen Datenbanken kann jedoch ein anderes Äquivalent vorhanden sein. Redshift verwendet beispielsweise || als Verkettungsoperator.

Persistente abgeleitete Tabelle (PDT) zum Erstellen eines Primärschlüssels verwenden

Wenn es keine vernünftige Möglichkeit gibt, eine eindeutige Zeile als Primärschlüssel festzulegen, können Sie eine persistente abgeleitete Tabelle (PDT) erstellen, um eine eindeutige ID zu generieren. In der folgenden abgeleiteten Tabelle wird beispielsweise die Zeilennummer der Tabelle als Primärschlüssel verwendet:

view: transaction {
  # sql_table_name: warehouse.transaction
  derived_table: {
    sql: SELECT ROW_NUMBER as transaction_pk, * FROM warehouse.transaction ;;
    sql_trigger_value: SELECT CURRENT_DATE ;;
    indexes: [customer_id, product_id, salesperson_id, transaction_date]
  }

  dimension: transaction_pk {
    type: number
    primary_key: yes
    hidden: yes
    sql: ${TABLE}.transaction_pk ;;
    ...
  }
}