Tablas
Las tablas definen la estructura de los datos.
Puede cargar nuevos datos en las tablas o datos de referencia en una ubicación existente. Puede definir permisos de control de acceso detallados en las tablas mediante la creación de permisos de tabla.
Las tablas pueden ser externas o gestionadas.
Tablas externas
Una tabla externa define una estructura para los datos que se almacenan en una ubicación no gestionada por Oracle AI Data Platform Workbench. Al crear una tabla externa en AI Data Platform Workbench, el ciclo de vida de los metadatos lo gestiona AI Data Platform Workbench. Al suprimir una tabla externa, solo se suprime la definición de tabla. Los datos a los que hace referencia la tabla externa no se suprimen.
Asegúrese de que los usuarios tienen las siguientes políticas de IAM necesarias para crear tablas 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>Se necesitan políticas de IAM adicionales para las tablas externas. Para obtener más información, consulte Políticas de IAM para el área de trabajo de Oracle AI Data Platform.
Tablas gestionadas
Una tabla gestionada define una estructura para los datos que se almacenan en AI Data Platform y a la que solo pueden acceder los usuarios de AI Data Platform Workbench.
Al suprimir una tabla gestionada, se suprimen la definición de tabla y los datos de tabla.
Formatos de tabla soportados
| Formato | Descripción | Uso |
|---|---|---|
| Valores separados por coma (CSV) | Los datos se almacenan como un archivo de texto con un formato de archivo basado en filas especificado para estructurar los datos. Normalmente, la primera fila del archivo es una fila de cabecera que contiene nombres de columnas para los datos. | Se utiliza para intercambiar datos tabulares entre sistemas. Cada fila del archivo es una fila de una tabla. |
| Notaciones de objetos de JavaScript (JSON) | Los datos se almacenan en un formato estándar basado en texto para representar datos estructurados basados en la sintaxis de objeto JavaScript. JSON soporta listas de objetos o estructuras jerárquicas. | Se utiliza en aplicaciones de flujo. JSON simplifica el almacenamiento de datos relacionados con relaciones complejas en un solo documento y evita la conversión de listas caóticas a un modelo de datos relacional. Tenga en cuenta que JSON no se puede dividir. |
| Avro | Los datos se almacenan en un formato binario basado en filas mientras que el esquema se almacena en formato JSON para minimizar el tamaño del archivo y maximizar la eficiencia. Avro cuenta con un soporte fiable para la evolución del esquema mediante la gestión de campos agregados, faltantes y modificados. Esto permite que el software antiguo lea datos nuevos y que el nuevo software lea datos antiguos. También conocido como sistema de serialización de datos. | Se utiliza para el almacenamiento de datos, ya que los archivos avro se pueden dividir y comprimir. El almacenamiento basado en filas serializado es ideal para transacciones de escritura intensa, como la inserción de datos en AI Data Platform. Avro también es una buena opción cuando la evolución del esquema es crítica durante las escrituras de alta velocidad. |
| Parquet | Los datos se almacenan en un formato de datos en columnas y son altamente comprimibles y dividibles. Parquet está optimizado para el paradigma Write Once Read Many (WORM). Escribe lentamente, pero lee increíblemente rápido, especialmente cuando solo se accede a un subconjunto de columnas. | Se utiliza para resolver problemas de Big Data a medida que los algoritmos de compresión funcionan mejor con el formato de datos en columnas. Puede almacenar Big Data en varios formatos, como imágenes, vídeos, documentos y tablas de datos estructurados. Parquet es una buena opción para cargas de trabajo pesadas al leer partes de datos. Por ejemplo, cuando el juego de datos tiene muchas columnas, pero solo desea acceder a un subjuego de columnas. Ideal cuando depende de Spark o cuando desea que varios servicios accedan a los mismos datos almacenados en Object Storage. |
| Columnas de Filas Optimizadas (ORC) | Los datos se almacenan en recopilaciones de filas en un único archivo en formato de columna. | Se utiliza para el procesamiento paralelo de recopilaciones de filas en un cluster. Ideal cuando las transacciones de lectura son más que transacciones de escritura o cuando la compresión es prioridad. |
| Delta | Los datos se almacenan en un formato de columna que amplía los archivos de datos de Parquet con un log de transacciones basado en archivos JSON para transacciones ACID y manejo escalable de metadatos. | Se utiliza para el soporte de transacciones. |
Tipos de dato soportados
| Tipo de dato | Descripción |
|---|---|
| Tipo de byte | Representa números enteros con signo de 1 byte. El rango de números es de -128 a 127. |
| Tipo corto | Representa números enteros con signo de 2 bytes. El rango de números es de -32768 a 32767. |
| Tipo de entero | Representa números enteros con signo de 4 bytes. El rango de números es de -2147483648 a 2147483647. |
| Tipo largo | Representa números enteros con signo de 8 bytes. El rango de números es de -9223372036854775808 a 9223372036854775807. |
| Tipo de flotación | Representa números de punto flotante de precisión única de 4 bytes. |
| DoubleType | Representa números de punto flotante de doble precisión de 8 bytes. |
| Tipo decimal | Representa números decimales de precisión arbitraria firmados. Respaldado internamente por java.math.BigDecimal. Un BigDecimal consiste en un valor sin escala de entero de precisión arbitraria y una escala de entero de 32 bits. |
| Tipo de cadena | Representa valores de cadena de caracteres. |
| VarcharType (longitud) | Variante de StringType que tiene una limitación de longitud. La escritura de datos fallará si la cadena de entrada supera la limitación de longitud. |
| CharType (longitud) | Variante del tipo Varchar (longitud), que es longitud fija. La lectura de la columna de tipo CharType(n) siempre devuelve valores de cadena de longitud n. La comparación de columnas de tipo de característica rellenará el corto hasta la longitud más larga. |
| Tipo binario | Representa los valores de secuencia de bytes. |
| Tipo booleano | Representa valores booleanos. |
| Tipo de fecha | Representa valores que comprenden valores de los campos año, mes y día, sin una zona horaria. |
| TimestampType | Registro de hora con zona horaria local (TIMESTAMP_LTZ). Representa valores que comprenden valores de los campos año, mes, día, hora, minuto y segundo, con la zona horaria local de la sesión. El valor de registro de hora representa un punto absoluto en el tiempo. |
| Tipo de registro de horaNTZ | Registro de hora sin zona horaria (TIMESTAMP_NTZ). Representa valores que comprenden valores de los campos año, mes, día, hora, minuto y segundo. Todas las operaciones se realizan sin tener en cuenta ninguna zona horaria. |
| YearMonthIntervalType (startField, endField) | Representa un intervalo año-mes que se compone de un subconjunto contiguo de MES, meses dentro de los años [0..11] y AÑO, años dentro del intervalo [0..178956970]. |
| TipoIntervaloDíaHora(startField, endField) | Representa un intervalo de día que se compone de un subjuego contiguo de SEGUNDO, segundos en minutos y posiblemente fracciones de segundo [0..59.99999], MINUTO, minutos en horas [0..59], HORA, horas en días [0..23] y DÍA, días en el rango [0..106751991]. |
| ArrayType(elementType, containsNull) | Representa valores que comprenden una secuencia de elementos con el tipo de elementoType. containsNull se utiliza para indicar si los elementos de un valor ArrayType pueden tener valores nulos. |
| MapType(keyType, valueType, valueContainsNull) | Representa valores que comprenden un conjunto de pares clave-valor. El tipo de dato de las claves se describe por keyType y el tipo de dato de los valores se describe por valueType. Para un valor MapType, no se permite que las claves tengan valores nulos. valueContainsNull se utiliza para indicar si los valores de un valor MapType pueden tener valores nulos. |
| StructType (campos) | Representa valores con la estructura descrita por una secuencia de StructFields (campos). |
| StructField(nombre, tipo de dato, nulo) | Representa un campo en un StructType. El nombre de un campo se indica por nombre. El tipo de dato de un campo se indica mediante dataType. nullable se utiliza para indicar si los valores de estos campos pueden tener valores nulos. |
Limitaciones
Las siguientes limitaciones se aplican a las tablas de Oracle AI Data Platform:
- No puede definir una tabla externa en ningún archivo de datos o directorio dentro o en un volumen.
- No puede definir una tabla externa en un cubo y/o su directorio que ya se utiliza para otra tabla externa o volumen externo
- Las vistas no se pueden ver/mostrar en el catálogo maestro.
Evolución del Esquema
La evolución del esquema en Oracle AI Data Platform Workbench permite a los usuarios con los permisos necesarios actualizar una tabla gestionada mediante SQL en un bloc de notas.
Esto resulta útil cuando una definición de tabla cambia con el tiempo para soportar nuevas columnas, columnas eliminadas, columnas con nombre cambiado, cambios de partición o cambios de nombre de tabla sin volver a crear el juego de datos desde cero. Los formatos soportados son Parquet, Avro y Delta.
Operaciones Soportadas
- Cambiar nombre de tabla: soportado para Delta, Parquet y Avro
- Agregar columnas: soportado para Delta, Parquet y Avro
- Columnas de caída: soportadas para Delta; no soportadas para Parquet y Avro
- Modificar o cambiar el nombre de columnas: soportado para Delta; no soportado para Parquet y Avro
- Sustituir columnas: solo se admite para Delta
- Agregar particiones: soportado para Parquet y Avro mediante DDL; para Delta, el manejo de particiones está soportado durante la inserción de datos en lugar de mediante DDL
- Borrar particiones: soportado para Parquet y Avro; para Delta, las particiones se eliminan mediante la supresión de datos y la ejecución de vacío en lugar de mediante DDL directo
- Cambiar tipo de dato: no soportado para Parquet o Avro; no soportado para Delta mediante DDL directo y puede que necesite una solución alternativa basada en CTAS o esquema de sobrescritura
Editar una tabla
Puede modificar los detalles de las tablas que gestiona.
Note:
Las ediciones en tablas de catálogo externas realizadas en Oracle AI Data Platform Workbench no se transfieren al catálogo remoto.- Navegue hasta el esquema.
- Seleccione el separador Tablas.
- Junto a la tabla que desea editar, haga clic en
Acciones.- Haga clic en Cambiar Nombre para cambiar el nombre de la tabla. Introduzca un nuevo nombre y pulse Intro.
- Haga clic en Editar descripción para cambiar la descripción de la tabla. Proporcione la nueva descripción y haga clic en Guardar.
Ver Detalles de Tabla
Puede ver los detalles de las tablas del esquema.
- Vaya al esquema. Haga clic en el separador Tablas.
- Haga clic en el nombre del volumen para el que desea ver los detalles. También puede hacer clic en
Acciones junto al volumen y, a continuación, en Ver. - Haga clic en el separador Detalles.

