Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Conflitos de tipo de amostragem

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 o relational database restringem as colunas a um único tipo de dados. O BI Connector coleta amostras de dados do MongoDB para gerar um modelo de esquema relacional, mas podem ocorrer conflitos de conversão de tipos quando o BI Connector 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

O BI Connector usa somente o subconjunto de amostra de seus dados para detectar conflitos de tipo durante a geração de esquema. Se o seu conjunto de dados contiver conflitos de tipo em um campo e os tipos conflitantes não estiverem presentes na amostra, o esquema gerado não estará preparado para resolver esses conflitos e poderá resultar no aumento da latência da query.

Para obter mais informações sobre a configuração de amostragem, como definir --samplesize e --schemaRefreshIntervalSecs, consulte Opções de esquema.

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