Usar campos calculados en los esquemas

La propiedad de campo formula se puede usar para añadir campos calculados al esquema de tu conector.

La lista completa de funciones que se admiten en las fórmulas se puede consultar en el artículo Lista de funciones. Además, hay más documentación sobre lo siguiente:

Estos nombres de funciones no se pueden utilizar como la propiedad name en los campos.

semanticType de los campos calculados

Para establecer el semanticType de una fórmula:

  • Si el resultado es un número, configura semanticType como NUMBER o PERCENT.
  • Si el resultado es una cadena y coincide con un semanticType de tipo DATE_AND_TIME o GEO, configura el semanticType con la enumeración correspondiente. Por ejemplo, si el resultado del campo calculado es "20180327", configura semanticType como YEAR_MONTH_DAY.
  • En el caso de los demás resultados de cadenas, configura el semanticType como TEXT.

Ejemplos de campos calculados en esquemas

En el siguiente esquema de ejemplo se incluyen dos campos calculados: t_fahrenheit y weather. Ten en cuenta que sus propiedades formula añaden el símbolo $ al principio de los name a los que hacen referencia.

{
  "schema": [
    {
      "name": "date",
      "label": "Date",
      "description": "Date of measurement",
      "dataType": "STRING",
      "semantics": {
        "conceptType": "DIMENSION",
        "semanticType": "YEAR_MONTH_DAY",
      }
    },
    {
      "name": "t_celsius",
      "label": "Temperature (Celsius)",
      "description": "Temperature in Celsius",
      "dataType": "NUMBER",
      "semantics": {
        "conceptType": "METRIC",
        "semanticType": "NUMBER",
      }
    },
    {
      "name": "t_fahrenheit",
      "label": "Temperature (Fahrenheit)",
      "description": "Temperature in Fahrenheit",
      "dataType": "NUMBER",
      "formula": "$t_celsius/5*9+32",
      "semantics": {
        "conceptType": "METRIC",
        "semanticType": "NUMBER",
      }
    },
    {
      "name": "weather",
      "label": "Weather (based on temp)",
      "description": "Temperature in Fahrenheit",
      "dataType": "STRING",
      "formula": "CASE WHEN $t_celsius<0 THEN \"Freezing\" WHEN $t_celsius>40 THEN \"Too warm\" ELSE \"Not bad\" END",
      "semantics": {
        "conceptType": "DIMENSION",
        "semanticType": "TEXT"
      }
    }
  ]
}