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 BI Connector amostras de dados do MongoDB para gerar um modelo de esquema relacional, mas os conflitosde conversão de tipo podem ocorrer quando o BI Connector 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