Tabelas

As tabelas definem a estrutura de seus dados.

Você pode carregar novos dados em suas tabelas ou dados de referência em um local existente. Você pode definir permissões de controle de acesso detalhadas em tabelas criando permissões de tabela.

As tabelas podem ser externas ou gerenciadas.

Tabelas externas

Uma tabela externa define uma estrutura para dados armazenados em um local não gerenciado pelo Oracle AI Data Platform Workbench. Quando você cria uma tabela externa no AI Data Platform Workbench, o ciclo de vida dos metadados é gerenciado pelo AI Data Platform Workbench. Quando você exclui uma tabela externa, somente a definição da tabela é excluída. Os dados referenciados pela tabela externa não são excluídos.

Certifique-se de que seus usuários tenham as seguintes políticas do serviço IAM necessárias para criar tabelas externas:

allow group <GroupName> to read buckets in compartment id <external-data-CompartmentId>
allow group <GroupName> to inspect objects in compartment id <external-data-CompartmentId>

Políticas adicionais do IAM são necessárias para tabelas externas. Para obter mais informações, consulte Políticas do IAM para o Oracle AI Data Platform Workbench.

Tabelas Gerenciadas

Uma tabela gerenciada define uma estrutura para dados armazenados na AI Data Platform e só pode ser acessada por usuários do AI Data Platform Workbench.

Quando você exclui uma tabela gerenciada, a definição da tabela e os dados da tabela são excluídos.

Formatos de Tabela Suportados

Formatar Descrição Utilização
Valores Separados por Vírgulas (CSV) Os dados são armazenados como um arquivo de texto com um formato de arquivo baseado em linha especificado para estruturar os dados. Normalmente, a primeira linha do arquivo é uma linha de cabeçalho que contém nomes de colunas para os dados. Usado para trocar dados tabulares entre sistemas. Cada linha do arquivo é uma linha de uma tabela.
JavaScript Object Notation (JSON) Os dados são armazenados em um formato padrão baseado em texto para representar dados estruturados com base na sintaxe de objeto JavaScript. O JSON suporta listas de objetos ou estruturas hierárquicas. Usado em aplicativos de fluxo. O JSON simplifica o armazenamento de dados relacionados com relações complexas num único documento e evita a conversão caótica de listas para um modelo de dados relacional. Observe que o JSON não é splittable.
Avro Os dados são armazenados em um formato binário baseado em linha, enquanto o esquema é armazenado em formato JSON para minimizar o tamanho do arquivo e maximizar a eficiência. O Avro tem suporte confiável para a evolução do esquema, gerenciando campos adicionados, ausentes e alterados. Isso permite que softwares antigos leiam novos dados e novos softwares leiam dados antigos. Também conhecido como sistema de serialização de dados. Usado para armazenamento de dados, pois os arquivos avro são divisíveis e compactáveis. O armazenamento serializado baseado em linhas é ideal para transações de gravação pesada, como a inserção de dados na AI Data Platform. O Avro também é uma boa escolha quando a evolução do esquema é crítica durante gravações de alta velocidade.
Parquet Os dados são armazenados em um formato de dados colunar e são altamente compactáveis e divisíveis. Parquet é otimizado para o paradigma Write Once Read Many (WORM). Ele escreve lentamente, mas lê incrivelmente rapidamente, especialmente quando você acessa apenas um subconjunto de colunas. Usado para resolver problemas de Big Data, pois os algoritmos de compactação funcionam melhor com o formato de dados colunar. Você pode armazenar Big Data em vários formatos, como imagens, vídeos, documentos e tabelas de dados estruturados. Parquet é uma boa escolha para cargas de trabalho pesadas ao ler partes de dados. Por exemplo, quando o conjunto de dados tem muitas colunas, mas você só deseja acessar um subconjunto de colunas. Ideal quando você depende do Spark ou quando deseja que vários serviços acessem os mesmos dados armazenados no Object Storage.
ORC (Optimized Row Columnar, Coluna de linha otimizada) Os dados são armazenados em coleções de linhas em um único arquivo em formato colunar. Usado para processamento paralelo de coleções de linhas em um cluster. Ideal quando as transações de leitura são mais do que transações de gravação ou quando a compactação é prioridade.
Delta Os dados são armazenados em um formato colunar que estende os arquivos de dados Parquet com um log de transações baseado em arquivo JSON para transações ACID e tratamento escalável de metadados. Usado para suporte a transações.

Tipos de Dados Suportados

Tipo de Dados Descrição
Tipo de Byte Representa números inteiros assinados de 1 byte. O intervalo de números é de -128 a 127.
Tipo Abreviado Representa números inteiros assinados de 2 bytes. O intervalo de números é de -32768 a 32767.
Tipo de Inteiro Representa números inteiros assinados de 4 bytes. A faixa de números é de -2147483648 a 2147483647.
Tipo Longo Representa números inteiros assinados de 8 bytes. A gama de números é de -9223372036854775808 a 9223372036854775807.
Tipo de Flutuação Representa números de ponto flutuante de precisão única de 4 bytes.
Tipo Duplo Representa números de pontos flutuantes de precisão dupla de 8 bytes.
DecimalType Representa números decimais assinados de precisão arbitrária. Apoiado internamente por java.math.BigDecimal. Um BigDecimal consiste em um valor não escalado de inteiro de precisão arbitrária e uma escala de inteiro de 32 bits.
Tipo de String Representa valores de string de caracteres.
VarcharType(comprimento) Uma variante de StringType que tem uma limitação de comprimento. A gravação de dados falhará se a string de entrada exceder o limite de tamanho.
Tipo de Característica (comprimento) Uma variante de VarcharType (comprimento) que é comprimento fixo. A coluna de leitura do tipo CharType(n) sempre retorna valores de string de tamanho n. A comparação da coluna do tipo de característica preencherá o curto com o comprimento maior.
Tipo Binário Representa valores de sequência de bytes.
Tipo booliano Representa valores boolianos.
Tipo de Data Representa valores que compreendem os valores dos campos ano, mês e dia, sem um fuso horário.
TimestampType Timestamp com fuso horário local (TIMESTAMP_LTZ). Representa valores que compreendem os campos ano, mês, dia, hora, minuto e segundo, com o fuso horário local da sessão. O valor do timestamp representa um ponto absoluto no tempo.
TimestampNTZType Timestamp sem fuso horário (TIMESTAMP_NTZ). Representa valores que compreendem os campos ano, mês, dia, hora, minuto e segundo. Todas as operações são realizadas sem levar em conta qualquer fuso horário.
YearMonthIntervalType(startField, endField) Representa um intervalo ano-mês que é composto por um subconjunto contíguo de MÊS, meses dentro de anos [0..11] e ANO, anos na faixa [0..178956970].
DayTimeIntervalType(startField, endField) Representa um intervalo de um dia que é composto por um subconjunto contíguo de SEGUNDO, segundos em minutos e possivelmente frações de um segundo [0..59.999999], MINUTO, minutos em horas [0..59], HORA, horas em dias [0..23] e DIA, dias no intervalo [0..106751991].
ArrayType(elementType, containsNull) Representa valores que compreendem uma sequência de elementos com o tipo de elementType. containsNull é usado para indicar se os elementos em um valor ArrayType podem ter valores nulos.
MapType(keyType, valueType, valueContainsNull) Representa valores que compreendem um conjunto de pares de chave/valor. O tipo de dados das chaves é descrito por keyType e o tipo de dados dos valores é descrito por valueType. Para um valor MapType, não é permitido que as chaves tenham valores nulos. valueContainsNull é usado para indicar se os valores de um valor MapType podem ter valores nulos.
StructType(campos) Representa valores com a estrutura descrita por uma sequência de StructFields (campos).
StructField(name, dataType, anulável) Representa um campo em um StructType. O nome de um campo é indicado por nome. O tipo de dados de um campo é indicado por dataType. nullable é usado para indicar se os valores desses campos podem ter valores nulos.

Limitações

As seguintes limitações se aplicam a tabelas no Oracle AI Data Platform:

  • Não é possível definir uma tabela externa em nenhum arquivo de dados ou diretório dentro/em um volume.
  • Você não pode definir uma tabela externa em um bucket e/ou seu diretório que já esteja sendo usado para outra tabela externa ou volume externo
  • As exibições não podem ser exibidas/listadas no Catálogo Mestre.

Evolução do Esquema

A evolução do esquema no Oracle AI Data Platform Workbench permite que usuários com as permissões necessárias atualizem uma tabela gerenciada usando SQL em um notebook.

Isso é útil quando uma definição de tabela muda com o tempo para suportar novas colunas, colunas removidas, colunas renomeadas, alterações de partição ou renomeações de tabela sem recriar o conjunto de dados do zero. Os formatos suportados são Parquet, Avro e Delta.

Operações Suportadas

As seguintes operações de evolução de esquema foram analisadas para tabelas gerenciadas:
  • Renomear tabela: suportado para Delta, Parquet e Avro
  • Adicionar colunas: suportado para Delta, Parquet e Avro
  • Colunas de eliminação: suportadas para Delta; não suportadas para Parquet e Avro
  • Alterar ou renomear colunas: suportado para Delta; não suportado para Parquet e Avro
  • Substituir colunas: suportado somente para Delta
  • Adicionar partições: suportado para Parquet e Avro via DDL; para Delta, o tratamento de partições é suportado durante a inserção de dados, e não por meio de DDL
  • Eliminar partições: suportado para Parquet e Avro; para Delta, as partições são removidas excluindo dados e executando vácuo em vez de por DDL direta
  • Alterar tipo de dados: não suportado para Parquet ou Avro; não suportado para Delta por meio de DDL direta e pode exigir uma solução alternativa baseada em CTAS ou esquema de substituição

Criar uma Tabela Gerenciada

Você pode criar tabelas para o esquema que gerencia.

  1. Navegue até o esquema para o qual deseja criar uma tabela.
  2. Selecione a guia Tabelas.
  3. Clique em Ícone Criar tabela Criar Tabela.

    Criar bandeja de tabela com tipo de tabela Gerenciado selecionado

  4. Selecione Gerenciado para seu Tipo de Tabela.
  5. Selecione o formato da tabela em Formato da tabela gerenciada.
  6. Arraste e solte um arquivo com os dados da tabela ou clique para procurar o local do arquivo.
  7. Forneça um nome e descrição para a sua tabela.
  8. Opcional: Para adicionar partições, expanda Chaves de partição (opcional). Clique em Adicionar Partição e selecione uma coluna de dados.
  9. Opcional: Para adicionar propriedades de tabela aos metadados do catálogo de dados, expanda Propriedades de tabela (opcional). Clique em Adicionar Propriedade e forneça a propriedade e seu valor.
  10. Clique em Criar.

Criar uma Tabela Externa

Você pode criar uma tabela externa com dados no OCI Object Storage.

  1. Navegue até o esquema para o qual deseja criar uma tabela.
  2. Selecione a guia Tabelas.
  3. Clique em Ícone Criar tabela Criar Tabela.

    Criar página de tabela aberta com o tipo de tabela Externo selecionado

  4. Selecione Externo para seu Tipo de Tabela.
  5. Selecione o compartimento, o bucket e a pasta no OCI Object Storage no qual os dados são armazenados. Os objetos que você pode selecionar são baseados nas permissões do IAM do usuário conectado.
  6. Forneça um nome e descrição para a sua tabela.
  7. Opcional: Para adicionar propriedades de tabela aos metadados do catálogo de dados, expanda Propriedades de tabela (opcional). Clique em Adicionar Propriedade e forneça a propriedade e seu valor.
  8. Clique em Criar.

Editar uma Tabela

É possível modificar os detalhes das tabelas que você gerencia.

Observação:

As edições nas tabelas de catálogo externo feitas no Oracle AI Data Platform Workbench não são enviadas para o catálogo remoto.
  1. Navegue até o seu esquema.
  2. Selecione a guia Tabelas.
  3. Ao lado da tabela que você deseja editar, clique em Ícone de três pontos de ações Ações.
    • Clique em Renomear para alterar o nome da sua tabela. Informe um novo nome e pressione Enter.
    • Clique em Editar Descrição para alterar a descrição da tabela. Forneça a nova descrição e clique em Salvar.

Exibir Detalhes da Tabela

Você pode exibir os detalhes das tabelas no esquema.

  1. Navegue até o seu esquema. Clique na guia Tabelas.
  2. Clique no nome do volume cujos detalhes você deseja exibir. Você também pode clicar em Ícone de três pontos de ações Ações ao lado do volume e, em seguida, clicar em Exibir.
  3. Clique na guia Detalhes.

Excluir uma Tabela

Você pode excluir tabelas do esquema que gerencia.

  1. Navegue até o esquema do qual deseja excluir a tabela.
  2. Clique na guia Tabelas.
  3. Ao lado da tabela que você deseja excluir, clique em Ícone de três pontos de ações Ações e clique em Excluir.
  4. Clique em Excluir.