Tipos de dados e tipos semânticos

Quando você cria um conector da comunidade, cada campo definido no esquema requer um tipo de dados. O tipo dos dados define o tipo primitivo do campo, como BOOLEAN, STRING, NUMBER etc.

Além dos tipos de dados, o Data Studio também usa os tipos semânticos. Os tipos semânticos ajudam a descrever quais informações os dados representam. Por exemplo, um campo com um tipo de dados NUMBER pode representar semanticamente um valor monetário ou uma porcentagem, enquanto um campo com tipo de dados STRING pode representar de forma semântica uma cidade. Para ver os tipos semânticos disponíveis, consulte a documentação sobre tipos semânticos.

Esquema do conector da comunidade e campos do Data Studio

Quando você define o esquema para seu conector da comunidade, há várias propriedades que determinarão como cada campo será representado e usado no Data Studio. Por exemplo:

  • O conceptType é definido no esquema do conector usando a propriedade conceptType. Essa propriedade determina se o campo será tratado como uma dimensão ou métrica. Veja uma explicação sobre a diferença entre métricas e dimensões no artigo Dimensões e métricas.
  • O tipo semântico pode ser definido no esquema ou detectado automaticamente pelo Data Studio com base na propriedade do tipo de dados configurada no conector e nos valores de dados retornados pelo conector. Consulte a seção Detecção automática do tipo semântico para ver detalhes sobre como isso funciona.
  • O tipo de agregação determina se é possível agregar novamente os valores de métrica (as dimensões são ignoradas). Definir a propriedade semantics.isReaggregatable como true estabelecerá a agregação SUM como padrão. Caso contrário, ela será definida como Auto. Você também pode escolher o tipo de agregação padrão para os campos reagregáveis usando a propriedade defaultAggregationType.

Quando você configura um conector no Data Studio e o utiliza para se conectar, o editor de campos exibe o esquema completo do conector com base em como você definiu as propriedades acima. Se você incluiu os tipos semânticos, eles serão exibidos da maneira como você os definiu. Se estiver usando a detecção automática do tipo semântico, os campos serão exibidos conforme foram detectados. Fields Screen

Definir informações semânticas

Há duas maneiras de definir informações semânticas. Você pode estabelecer a semântica de campo ou deixar que o Data Studio a detecte de maneira automática.

Por exemplo, se houver um número que represente semanticamente dólares americanos, o Data Studio não detectará esse tipo semântico de forma automática. Além disso, a detecção automática da semântica requer que o Data Studio faça chamadas de busca de dados para cada campo do seu esquema. Se você especificar o esquema manualmente, nenhuma chamada de busca de dados será feita. Caso você saiba o tipo semântico (por exemplo, moeda, porcentagem, data etc.) das suas informações, recomendamos que o configure no esquema para melhorar a precisão e o desempenho.

Definir tipos semânticos manualmente (recomendado)

Se você souber seus tipos semânticos, poderá definir semantics manualmente para cada campo do esquema. Veja todos os detalhes sobre as propriedades disponíveis para você na página de referência do campo. Se optar por especificar manualmente os tipos semânticos, é recomendável que você defina semanticType e semanticGroup para todos os campos. Quando você fornece as propriedades, o processo de detecção automática do tipo semântico não é executado. Se você definir manualmente alguns dos seus campos, mas não todos, aqueles que você não especificar serão definidos por padrão como Text, Number ou Boolean, dependendo do dataType escolhido para o campo.

Veja a seguir o exemplo de um esquema simples que define os tipos semânticos manualmente. Income é especificado como a moeda, e Filing Year como a data.

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'
    }
  }
];

Resolver problemas relacionados aos tipos semânticos manuais

Se você definir seus tipos semânticos para os dados subjacentes de maneira incorreta, eles não funcionarão adequadamente. Isso é difícil de testar, mas há algumas estratégias para ajudar a encontrar problemas.

  1. Retorne duas ou três linhas dos seus dados em vez de tudo, e inspecione-os manualmente.
  2. Faça uma tabela no Data Studio que use apenas o campo que você está tentando verificar.
  3. Preste muita atenção aos campos Geo e Date, porque eles têm o formato mais rigoroso.

Detecção automática do tipo semântico

Se você não definiu nenhum tipo semântico no seu esquema, o Data Studio tentará detectá-lo automaticamente com base na propriedade do tipo de dados e no formato dos valores de dados retornados pelo seu conector.

Estas são as etapas do processo de detecção automática:

  1. Solicite o esquema executando a função getSchema do seu conector da comunidade.
  2. Itere usando lotes de campos definidos no esquema do conector e envie solicitações getData para os campos. As solicitações getData são executadas com o parâmetro sampleExtraction definido como true para indicar que as solicitações de dados são para fins de detecção semântica.
  3. Com base no tipo de dados de campo e no formato do valor retornado da solicitação getData, identifique o tipo semântico do campo.

Opções de tratamento da detecção automática do tipo semântico

Quando o Data Studio executa a função getData de um conector da comunidade para realizar a detecção semântica, a solicitação recebida terá uma propriedade sampleExtraction que será definida como true. Os dados retornados pelo seu conector são usados pelo Data Studio apenas para identificar o tipo semântico do campo. Como o valor não será usado para nenhum outro propósito, não são necessários dados reais da sua fonte externa.

Há várias maneiras de melhorar a detecção do tipo semântico no seu código:

  • Recomendado: transfira valores predefinidos
    Retorne um valor predefinido para cada campo que melhor representa o tipo semântico do campo e é conhecido por ser devidamente detectado pelo Data Studio. Por exemplo: se o tipo semântico de um campo for País, um valor como IT será retornado para "Itália". Outra vantagem dessa abordagem é que ela é muito mais rápida, já que não é necessário fazer solicitações HTTP ao serviço de terceiros para receber dados.

  • Somente retorne n registros
    Se o serviço de terceiros do qual você recebe dados for compatível com os limites de linha ao solicitar informações, retorne um pequeno subconjunto de linhas para o Data Studio, em vez do conjunto de dados completo. Isso limitará a quantidade de informações que você precisa transmitir para o Data Studio em cada solicitação de detecção semântica.

  • Solicite todas as colunas e armazene a resposta em cache
    Se for possível solicitar todas as colunas para o serviço de terceiros do qual você recebe dados, na primeira solicitação de detecção semântica recebida do Data Studio, procure todas as colunas e armazene os resultados em cache. Para as solicitações de detecção semântica subsequentes, busque valores de coluna do cache em vez de fazer outras solicitações HTTP para o serviço de terceiros.

  • Não faça nada diferente
    Você pode optar por não implementar nenhuma acomodação específica para solicitações em que sampleExtraction é definido como true. Isso fará com que o processo de detecção semântica seja mais lento, porque o Data Studio terá que buscar todos os dados para o processo. Além disso, a taxa de solicitação da sua fonte de dados externa será afetada, já que muitos pedidos de detecção semântica serão executadas em paralelo.

Formatos reconhecidos para detecção automática do tipo semântico

Data e hora
  • 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
  • Hora: época por segundos, microssegundos, milissegundos e nanossegundos.
Informações geográficas