Cubo de dados - Data cube

Em contextos de programação de computador, um cubo de dados (ou datacube ) é uma matriz multidimensional ("nD") de valores. Normalmente, o termo datacube é aplicado em contextos onde esses arrays são muito maiores do que a memória principal do computador hospedeiro; os exemplos incluem data warehouses com vários terabytes / petabytes e séries temporais de dados de imagem.

O cubo de dados é usado para representar dados (às vezes chamados de fatos) ao longo de alguma medida de interesse. Por exemplo, no OLAP, essas medidas podem ser as subsidiárias que uma empresa possui, os produtos que a empresa oferece e o tempo; nesta configuração, um fato seria um evento de vendas em que um determinado produto foi vendido em uma determinada subsidiária em um determinado momento. Em imagens de satélite, as medidas da série de tempo seriam coordenadas de latitude e longitude e tempo; um fato seria um pixel em uma determinada coordenada de espaço / tempo conforme tomada pelo satélite (após algum processamento que não é motivo de preocupação aqui). Mesmo que seja chamado de cubo (e os exemplos fornecidos acima são tridimensionais para brevidade), um cubo de dados geralmente é um conceito multidimensional que pode ser unidimensional, bidimensional, tridimensional ou superior -dimensional. Em qualquer caso, cada dimensão representa uma medida separada, enquanto as células no cubo representam os fatos de interesse. Às vezes, os cubos contêm apenas alguns valores, com o resto vazio , ou seja, indefinido, às vezes a maioria ou todas as coordenadas do cubo contêm um valor de célula. No primeiro caso, esses dados são chamados de esparsos , no segundo caso são chamados de densos , embora não haja uma delimitação rígida entre os dois.

História

Os arrays multidimensionais são familiares há muito tempo nas linguagens de programação. Fortran oferece arrays 1-D e arrays de arrays, o que permite a construção de arrays de dimensões superiores. APL oferece suporte a matrizes nD com um rico conjunto de operações. Todos estes têm em comum que os arrays devem caber na memória principal e estão disponíveis apenas enquanto o programa particular que os mantém (como um software de processamento de imagem) está em execução.

Uma série de formatos de troca de dados oferece suporte ao armazenamento e à transmissão de dados semelhantes aos de um datacube, geralmente adaptados a domínios de aplicativos específicos. Os exemplos incluem MDX para dados estatísticos (em particular, de negócios), Formato de dados hierárquicos para dados científicos gerais e TIFF para imagens.

Em 1992, Peter Baumann introduziu o gerenciamento de grandes cubos de dados com funcionalidade de usuário de alto nível combinada com uma arquitetura de software eficiente. As operações do Datacube incluem extração de subconjunto, processamento, fusão e, em geral, consultas no espírito de linguagens de manipulação de dados como SQL .

Alguns anos depois, o conceito de datacube foi aplicado para descrever dados de negócios variáveis ​​no tempo como datacubes por Jim Gray , et al., E por Venky Harinarayan , Anand Rajaraman e Jeff Ullman, que estão entre os 500 artigos de ciência da computação mais citados em 25 período de um ano.

Naquela época, um grupo de trabalho sobre bancos de dados multidimensionais ("Arbeitskreis Multi-Dimensionale Datenbanken") foi estabelecido na German Gesellschaft für Informatik .

A Datacube Inc. era uma empresa de processamento de imagens que vendia aplicativos de hardware e software para o mercado de PCs em 1996, porém sem abordar os datacubes como tal.

A iniciativa EarthServer estabeleceu requisitos de serviço de cubo de dados geográficos.

estandardização

Em 2018, a linguagem de banco de dados ISO SQL foi estendida com a funcionalidade de datacube como "SQL - Parte 15: Arrays multidimensionais (SQL / MDA)".

Web Coverage Processing Service é uma linguagem de análise de geo datacubo emitida pelo Open Geospatial Consortium em 2008. Além das operações de cubo de dados comuns, a linguagem conhece a semântica de espaço e tempo e suporta cubos de dados de grade regulares e irregulares, com base no conceito de dados de cobertura .

Um padrão da indústria para consultar cubos de dados corporativos, originalmente desenvolvido pela Microsoft , é o MultiDimensional eXpressions .

Implementação

Muitas linguagens de computador de alto nível tratam cubos de dados e outros grandes arrays como entidades únicas distintas de seus conteúdos. Essas linguagens, das quais Fortran , APL , IDL , NumPy , PDL e S-Lang são exemplos, permitem ao programador manipular clipes de filmes completos e outros dados em massa com expressões simples derivadas de álgebra linear e matemática vetorial . Algumas linguagens (como PDL) distinguem entre uma lista de imagens e um cubo de dados, enquanto muitas (como IDL) não.

Array DBMSs (Database Management Systems) oferece um modelo de dados que genericamente suporta definição, gerenciamento, recuperação e manipulação de cubos de dados n-dimensionais. Esta categoria de banco de dados foi desenvolvida pelo sistema rasdaman desde 1994.

Formulários

As matrizes multidimensionais podem representar de forma significativa o sensor espaço-temporal, a imagem e os dados de simulação, mas também os dados estatísticos em que a semântica das dimensões não é necessariamente de natureza espacial ou temporal. Geralmente, qualquer tipo de eixo pode ser combinado com qualquer outro em um datacube.

Matemática

Em matemática, uma matriz unidimensional corresponde a um vetor, uma matriz bidimensional se assemelha a uma matriz ; mais geralmente, um tensor pode ser representado como um cubo de dados n-dimensional.

Ciência e engenharia

Para uma sequência de tempo de imagens coloridas, a matriz é geralmente quadridimensional, com as dimensões representando as coordenadas X e Y da imagem, o tempo e o plano de cores RGB (ou outro espaço de cores). Por exemplo, a iniciativa EarthServer une centros de dados de diferentes continentes oferecendo séries temporais de imagens de satélite 3-D x / y / t e dados meteorológicos 4-D x / y / z / t para recuperação e processamento do lado do servidor por meio do Open Geospatial Consortium WCPS padrão de linguagem de consulta geo datacube.

Um cubo de dados também é usado no campo da espectroscopia de imagem , uma vez que uma imagem resolvida espectralmente é representada como um volume tridimensional.

Business Intelligence

No processamento analítico online (OLAP), os cubos de dados são um arranjo comum de dados de negócios adequado para análise de diferentes perspectivas por meio de operações como fatiar, cortar, girar e agregar.

Veja também

Referências