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
- 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
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.- Navegue até o seu esquema.
- Selecione a guia Tabelas.
- Ao lado da tabela que você deseja editar, clique em
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.

