Tablas

Utilice tablas para definir 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. Para obtener más información, consulte Permisos de Tabla.

Para compartir una tabla, consulte Compartir datos.

Las tablas pueden ser gestionadas o externas.

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.

Al suprimir una tabla gestionada, se suprimen la definición de tabla y los datos de tabla.

Tablas externas

Una tabla externa define una estructura de datos que se almacena en una ubicación no gestionada por Oracle AI Data Platform. Al crear una tabla externa en AI Data Platform, el ciclo de vida de los metadatos se gestiona mediante AI Data Platform. 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 Oracle AI Data Platform.

Formatos de tabla soportados

Las tablas pueden utilizar formatos basados en archivos como CSV, JSON, Avro, Parquet y ORC, o formatos de tabla transaccional como Delta y Apache Iceberg. Las tablas de Iceberg utilizan la implantación del catálogo de Hadoop para gestionar los metadatos de las tablas en Oracle Cloud Infrastructure Object Storage.

Formato Descripción Uso
Valores separados por comas (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.
Lago 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.
Iceberg Formato de tabla abierta que gestiona los archivos de datos de Parquet a través de metadatos versionados, manifiestos e instantáneas. AI Data Platform utiliza la implementación del catálogo de Iceberg Hadoop. Se utiliza para transacciones ACID, lecturas y escrituras simultáneas, evolución de esquemas y particiones, consultas de viaje en el tiempo, actualizaciones de nivel de fila, upserts y gestión de instantáneas.

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 Un 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 Un 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 datos de claves se describe mediante keyType y el tipo de datos de valores se describe mediante 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 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 o su directorio que ya se utiliza para otra tabla externa o volumen externo
  • Las vistas no se pueden ver ni mostrar en el catálogo maestro.

Evolución del Esquema

La evolución del esquema en Oracle AI Data Platform 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, Delta y Iceberg.

Operaciones Soportadas

Se analizaron las siguientes operaciones de evolución de esquemas para las tablas gestionadas:

Operación Delta Parquet Avro Iceberg
Cambiar Nombre de Tabla Soportados Soportados Soportados Soportados
Agregar Columnas Soportados Soportados Soportados Soportados
Borrar Columnas Soportados No soportado No soportado Soportados
Modificar o cambiar el nombre de columnas Soportados No soportado No soportado Soportados
Sustituir columnas Soportados No soportado No soportado Soportados
Agregar particiones Las particiones se crean automáticamente cuando se escriben datos. No puede agregar particiones individuales mediante DDL. Soportado mediante DDL Soportado mediante DDL Las particiones se crean automáticamente cuando se escriben datos. No puede agregar particiones individuales mediante DDL. Puede agregar campos a la especificación de partición mediante ALTER TABLE ... ADD PARTITION FIELD.
Borrar particiones Elimine los datos relevantes y ejecute VACUUM. Soportados Soportados No puede borrar particiones individuales mediante DDL. En su lugar, elimine las filas relevantes. Puede eliminar campos de la especificación de partición mediante ALTER TABLE ... DROP PARTITION FIELD.
Cambiar tipo de dato Puede requerir una solución alternativa de CTAS o de esquema de sobrescritura. No soportado No soportado Solo se admite para promociones de tipo compatibles, como de INT a BIGINT, FLOAT to DOUBLE y aumento de la precisión decimal mediante ALTER TABLE. No se admiten conversiones estrechas e incompatibles.

Creación de una tabla gestionada

Puede crear una tabla gestionada que contenga datos estructurados para el esquema que gestiona.

  1. Abra el cuadro de diálogo Crear tabla.
    • En el panel de navegación de la izquierda:
      1. Haga clic en icono Crear Crear y seleccione Tabla.
      2. En el cuadro de diálogo Seleccionar ubicación de tabla, seleccione el catálogo y el esquema para los que desea crear la tabla y haga clic en Seleccionar.
    • En Icono de catálogo maestro Catálogo maestro:
      1. En el árbol de catálogo maestro o en el separador Catálogos, haga clic en el catálogo para el que desea crear la tabla para abrirla.
      2. En el separador Esquemas, haga clic en el esquema para el que desea crear la tabla para abrirla.
      3. Haga clic en Agregar a esquema y seleccione Tabla.

    Crear bandeja de tablas con el tipo de tabla Gestionado seleccionado

  2. En la lista desplegable Tipo de tabla, seleccione Gestionado.
  3. En la lista desplegable Formato de tabla gestionada, seleccione el formato de la tabla:
    • Avro
    • CSV
    • Lago delta
    • JSON
    • ORC
    • Parquet
    • Archivo de Texto
  4. Arrastre y suelte un archivo con los datos de la tabla o haga clic en Examinar para buscar y agregar el archivo.
  5. Si ha seleccionado CSV o JSON, configure las opciones avanzadas.
    • CSV: especifique si el archivo tiene cabeceras, si los datos pueden abarcar varias líneas, la codificación, el carácter de escape, el delimitador y el carácter de comillas.
    • JSON: especifique si los datos pueden abarcar varias líneas, si se permiten comentarios y comillas simples y la codificación.
  6. Si se muestra, haga clic en Vista previa de datos.
  7. Introduzca un nombre de tabla y una descripción.
  8. Opcional: si la tabla es muy grande, amplíe Claves de partición (opcional). Haga clic en Agregar partición y seleccione una columna de datos.
  9. Opcional: para agregar propiedades de tabla a los metadatos del catálogo de datos, amplíe Propiedades de tabla (opcional). Haga clic en Agregar propiedad e introduzca la propiedad y su valor.
  10. Haga clic en Create.

Crear una tabla externa

Puede crear una tabla externa para consultar datos directamente en OCI Object Storage sin mover ni duplicar los datos en Oracle AI Data Platform.

  1. Abra el cuadro de diálogo Crear tabla.
    • En el panel de navegación de la izquierda:
      1. Haga clic en icono Crear Crear y seleccione Tabla.
      2. En el cuadro de diálogo Seleccionar ubicación de tabla, seleccione el catálogo y el esquema para los que desea crear la tabla y haga clic en Seleccionar.
    • En Icono de catálogo maestro Catálogo maestro:
      1. En el árbol de catálogo maestro o en el separador Catálogos, haga clic en el catálogo para el que desea crear la tabla para abrirla.
      2. En el separador Esquemas, haga clic en el esquema para el que desea crear la tabla para abrirla.
      3. Haga clic en Agregar a esquema y seleccione Tabla.

    Crear página de tabla abierta con el tipo de tabla Externo seleccionado

  2. En la lista desplegable Tipo de tabla, seleccione Externo.
  3. En la lista desplegable Formato de datos de entrada, seleccione el formato de la tabla:
    • Avro
    • CSV
    • Lago delta
    • JSON
    • ORC
    • Parquet
    • Archivo de Texto
  4. Si ha seleccionado CSV o JSON, configure las opciones avanzadas.
    • CSV: especifique si el archivo tiene cabeceras, si los datos pueden abarcar varias líneas, la codificación, el carácter de escape, el delimitador y el carácter de comillas.
    • JSON: especifique si los datos pueden abarcar varias líneas, si se permiten comentarios y comillas simples y la codificación.
  5. Busque y seleccione el compartimento, el bloque y la carpeta (opcional) de OCI Object Storage donde se almacenan los datos. Los objetos que puede seleccionar se basan en los permisos de IAM del usuario conectado.
  6. Introduzca un nombre de tabla y una descripción.
  7. Opcional: si la tabla es muy grande, amplíe Claves de partición (opcional). Haga clic en Agregar partición y seleccione una columna de datos.
  8. Opcional: para agregar propiedades de tabla a los metadatos del catálogo de datos, amplíe Propiedades de tabla (opcional). Haga clic en Agregar propiedad e introduzca la propiedad y su valor.
  9. Haga clic en Create.

Ver Detalles de Tabla

Puede ver los detalles de una tabla para revisar su configuración y metadatos.

El separador Detalles de una tabla muestra la clave, el tipo y el formato de la tabla, junto con cuándo y por quién se creó y actualizó la tabla por última vez. También muestra las propiedades de la tabla.

  1. En el panel de navegación de la izquierda, haga clic en Icono de catálogo maestro Catálogo maestro.
  2. En el árbol de catálogo maestro, amplíe el catálogo y el esquema que contienen la tabla que desea ver y, a continuación, haga clic en Tablas.
  3. En el separador Tablas, busque la tabla y haga clic en Icono de tres puntos de acciones Acciones y, a continuación, en Ver.
  4. Haga clic en Detalles.

Cambio de Nombre de una Tabla

Puede cambiar el nombre de una tabla que gestione si su contenido o finalidad han cambiado.

Note:

Las ediciones en tablas externas de Oracle AI Data Platform no se transfieren al catálogo remoto en OCI Object Storage.
  1. En el panel de navegación de la izquierda, haga clic en Icono de catálogo maestro Catálogo maestro.
  2. En el árbol de catálogo maestro, amplíe el catálogo y el esquema que contienen la tabla que desea editar y, a continuación, haga clic en Tablas.
  3. En el separador Tablas, busque la tabla y haga clic en Icono de tres puntos de acciones Acciones y, a continuación, haga clic en Cambiar nombre.
  4. Edite el nombre de la tabla y pulse Intro.

Editar una descripción de tabla

Puede modificar la descripción de una tabla que gestione si su contenido o finalidad ha cambiado.

Note:

Las ediciones en tablas externas de Oracle AI Data Platform no se transfieren al catálogo remoto en OCI Object Storage.
  1. En el panel de navegación de la izquierda, haga clic en Icono de catálogo maestro Catálogo maestro.
  2. En el árbol de catálogo maestro, amplíe el catálogo y el esquema que contienen la tabla que desea editar y, a continuación, haga clic en Tablas.
  3. En el separador Tablas, busque la tabla y haga clic en Icono de tres puntos de acciones Acciones y, a continuación, en Editar descripción.
  4. Edite la descripción de la tabla y haga clic en Guardar.

Supresión de una tabla

Puede suprimir una tabla de un esquema que gestione cuando ya no sea necesario.

Note:

Los datos de OCI Object Storage a los que hace referencia una tabla externa no se suprimen.
  1. En el panel de navegación de la izquierda, haga clic en Icono de catálogo maestro Catálogo maestro.
  2. En el árbol de catálogo maestro, amplíe el catálogo y el esquema que contienen la tabla que desea suprimir y, a continuación, haga clic en Tablas.
  3. En el separador Tablas, busque la tabla y haga clic en Icono de tres puntos de acciones Acciones y, a continuación, en Suprimir.
  4. Haga clic en Suprimir.