Menu Docs
Página inicial do Docs
/
BI Connector
/

Conflitos de tipo de amostragem

Nesta página

  • Conflitos escalar-escalar
  • Conflitos de composição

Alterado na versão 2,6.

O modelo de esquema flexível do MongoDB permite que um determinado campo contenha dados de vários tipos, enquanto os bancos de dados relacionais restringem as colunas a um único tipo de dados. O Connector BI coleta amostras de dados do MongoDB para gerar um modelo de esquema relacional, mas os conflitosde conversão de tipo podem ocorrer quando o Connector BI coleta amostras de diferentes tipos de dados de um campo em documentos do MongoDB.

Existem duas categorias principais de conflitos de conversão de tipo que podem ocorrer na presença de vários tipos de dados: conflitos entre tipos escalares e conflitos envolvendo tipos compostos, como documentos e arrays.

Observação

Quando ocorre um conflito escalar-scalar, o BI Connector usa a seguinte rede para determinar o menor limite superior dos dois tipos de dados diferentes:

Grade do tipo escalar-escalar
clique para ampliar

Exemplo

Se um determinado campo contiver tipos int, double e string , o limite superior pelo menos será string.

Quando ocorre um conflito escalar-scalar, o BI Connector insere uma linha na tabela information_schema.COLUMNS e lista os diferentes tipos de amostra na coluna COLUMN_COMMENT .

Conflitos compostos são conflitos de conversão de tipo envolvendo um documento ou uma array. As seções a seguir descrevem como o BI Connector resolve os dois tipos de conflitos compostos.

Quando ocorre um conflito envolvendo um documento, o BI Connector exibe os campo do tipo de documento como colunas separadas usando notação de ponto. Por exemplo, a coleção conflict contém os seguintes documentos:

{ _id: 0, a: "foo" } // "a" is scalar (string)
{ _id: 1, a: { a: "bar", b: "baz" } } // "a" is composite (document)

O BI Connector detecta um conflito escalar-composto e gera o seguinte esquema relacional:

Tabela: conflict

_id
uma
aa
ab
0
"foo"
NULL
NULL
1
NULL
"bar"
"baz"

Quando ocorre um conflito envolvendo um documento, o BI Connector insere uma linha na tabela information_schema.COLUMNS e lista os diferentes tipos de amostra na coluna COLUMN_COMMENT .

Quando ocorre um conflito envolvendo uma array, o BI Connector cria uma nova tabela para o campo de conflito com uma coluna para a chave estrangeira, índice de array e valor. O BI Connector desenrola a array em várias linhas na nova tabela e preenche as colunas adequadamente. Por exemplo, a collection conflict contém o seguinte documento:

{ _id: 0, a: "foo" } // "a" is scalar (string)
{ _id: 1, a: ["bar", "baz"] } // "a" is composite (array)

O BI Connector renderiza os itens acima nas duas tabelas a seguir:

Tabela: conflict

_id
0
1

Tabela: conflict_a

_id
a_idx
uma
0
NULL
"foo"
1
0
"bar"
1
1
"baz"

Quando ocorre um conflito envolvendo uma array, o BI connector:

  • Insere uma linha na tabela information_schema.COLUMNS e lista quaisquer tipos diferentes amostrados na coluna COLUMN_COMMENT

  • Insere uma linha na tabela information_schema.TABLES contendo informações sobre como a array mapeia para a linha na tabela information_schema.COLUMNS

Voltar

Dados geoespaciais