Interroger des tables externes avec partitionnement implicite
Sur Autonomous Database, vous pouvez créer des tables externes partitionnées implicites à partir de données partitionnées de type Hive ou à partir de données partitionnées de dossier simple stockées dans votre stockage d'objet cloud.
- A propos des tables externes avec partitionnement implicite
Sur Autonomous Database, utilisez la procédureDBMS_CLOUD.CREATE_EXTERNAL_TABLE
pour créer des tables externes partitionnées implicites à partir de données partitionnées de type Hive ou à partir de données partitionnées de dossier simple stockées dans votre stockage d'objet cloud. - Interrogation des données partitionnées implicites externes avec l'organisation de fichier source au format Hive
Utilisez la procédureDBMS_CLOUD.CREATE_EXTERNAL_TABLE
pour créer une table externe partitionnée implicite à partir des données de la banque d'objets générées à partir des données Hive. - Interrogation des données de style non Hive partitionnées implicites externes
Utilisez la procédureDBMS_CLOUD.CREATE_EXTERNAL_TABLE
pour créer une table externe partitionnée implicite à partir de données dans le stockage d'objet générées à partir de données non Hive.
Rubrique parent : Interrogation des données externes avec Autonomous Database
A propos des tables externes avec partitionnement implicite
Sur Autonomous Database, utilisez la procédure DBMS_CLOUD.CREATE_EXTERNAL_TABLE
pour créer des tables externes partitionnées implicites à partir de données partitionnées de type Hive ou à partir de données partitionnées de dossier simple stockées dans votre stockage d'objet cloud.
Utilisez la procédure DBMS_CLOUD.CREATE_EXTERNAL_TABLE
pour créer des tables externes partitionnées implicites. En transmettant les options appropriées à cette procédure, les partitions sont dérivées des données source. Les tables externes partitionnées prennent en charge le repérage d'exécution des colonnes de partition et de leurs valeurs. Le repérage lors de l'exécution des modifications apportées à la structure de banque d'objets sous-jacente, telles que l'ajout ou la suppression d'objets, simplifie le processus de maintenance en éliminant la nécessité de procédures de synchronisation supplémentaires requises par DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
. Cela garantit que les données sont à jour lors de l'exécution de la requête.
Avec le partitionnement implicite, Autonomous Database détermine automatiquement les colonnes sur lesquelles une table est "partitionnée" en fonction de la structure de fichier hiérarchique de la source de stockage d'objets. Il n'est pas nécessaire de déclarer explicitement un schéma de partitionnement. Le partitionnement implicite offre des avantages en termes de performances de type table de partition sans qu'il soit nécessaire de définir explicitement une table externe partitionnée à l'aide de la procédure DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
.
Les tables externes partitionnées implicites prennent en charge les styles de dénomination suivants pour les objets partitionnés dans la banque d'objets :
- Format de dénomination Hive : les données du stockage d'objets générées à partir de Hive ont le format suivant.
OBJBUCKET/<table>/<partcol1>=<value1>/<partcol2>=<value2>/file.parquet
Pour obtenir un exemple, reportez-vous à Interrogation des données partitionnées implicites externes avec l'organisation de fichier source au format Hive.
- Format de dénomination "Pathtail" non Hive : un deuxième format qui se trouve souvent dans les lacs de données est similaire au format hive, mais le nom du dossier n'inclut pas les colonnes de partition.
OBJBUCKET/<table>/<value1>/<value2>/file.parquet
Pour obtenir un exemple, reportez-vous à Interrogation des données de style non Hive partitionnées implicites externes.
Pour plus d'informations sur les formats de nom, reportez-vous à A propos des tables externes avec partitionnement de fichier source.
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
, les tables externes partitionnées implicites peuvent être créées de l'une des manières suivantes :
- Définir le type de partition sur ruche avec une liste donnée de colonnes de partition
Dans ce cas,
implicit_partition_type
est défini surhive
etimplicit_partition_columns
fournit la liste des colonnes de partition.Exemples :
DBMS_CLOUD.CREATE_EXTERNAL_TABLE ( table_name => 'mysales', credential_name => 'mycredential', file_uri_list => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/*.parquet', column_list => 'product varchar2(100), units number, country varchar2(100),year (number), month varchar2(2)', format => '{"type":"parquet", "implicit_partition_type":"hive", "implicit_partition_columns":["country","year","month"]}');
- Définir le type de partition sur ruche sans fournir de liste de colonnes de partition
Dans ce cas,
implicit_partition_type
est défini surhive
etimplicit_partition_columns
n'est pas fourni. Les colonnes de partition sont détectées automatiquement en recherchant '=' dans le chemin spécifié parfile_uri_list
.column_name
est à gauche du signe "=" et la valeur est à droite. Sicolumn_name
est introuvable dans le chemin, une erreur est générée.Exemples :
DBMS_CLOUD.CREATE_EXTERNAL_TABLE ( table_name => 'mysales', credential_name => 'mycredential', file_uri_list => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/*.parquet', column_list => 'product varchar2(100), units number, country varchar2(100),year (number), month varchar2(2)', format => '{"type":"parquet", "implicit_partition_type":"hive"');
- Fournir la liste des colonnes de partition sans indiquer le type
Dans ce cas,
implicit_partition_type
n'est pas défini etimplicit_partition_columns
fournit la liste des colonnes.Exemples :
DBMS_CLOUD.CREATE_EXTERNAL_TABLE ( table_name => 'mysales', credential_name => 'mycredential', file_uri_list => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/*.parquet', column_list => 'product varchar2(100), units number, country varchar2(100),year (number), month varchar2(2)', format => '{"type":"parquet", "implicit_partition_columns":["country","year","month"]}');
Reportez-vous à la section Procédure CREATE_EXTERNAL_TABLE pour plus d'informations.
Rubrique parent : Interrogation des tables externes avec partitionnement implicite
Interrogation des données partitionnées implicites externes avec l'organisation de fichier source au format Hive
Utilisez la procédure DBMS_CLOUD.CREATE_EXTERNAL_TABLE
pour créer une table externe partitionnée implicite à partir des données de la banque d'objets générées à partir des données Hive.
Les exemples de fichiers source de l'exemple suivant utilisent le format de dénomination suivant :
OBJBUCKET/<table>/<partcol1>=<value1>/<partcol2>=<value2>/file.parquet
Examinez les exemples de fichier source suivants :
OBJBUCKET/sales/country=USA/year=2024/month=01/sales-2024-01.parquet
OBJBUCKET/sales/country=USA/year=2024/month=02/sales-2024-02.parquet
OBJBUCKET/sales/country=USA/year=2024/month=02/sales-2024-03.parquet
Pour créer une table externe partitionnée implicite avec les données stockées dans cet exemple de format Hive, procédez comme suit :
Rubrique parent : Interrogation des tables externes avec partitionnement implicite
Interroger les données de style non Hive partitionnées implicites externes
Utilisez la procédure DBMS_CLOUD.CREATE_EXTERNAL_TABLE
pour créer une table externe partitionnée implicite à partir de données dans le stockage d'objet générées à partir de données non Hive.
Les exemples de fichiers source de l'exemple suivant utilisent le format de dénomination suivant :
OBJBUCKET/<table>/<value1>/<value2>/file.parquet
Examinez les exemples de fichier source suivants :
OBJBUCKET/sales/USA/2024/01/sales-2024-01.parquet
OBJBUCKET/sales/USA/2024/01/sales-2024-02.parquet
OBJBUCKET/sales/USA/2024/01/sales-2024-03.parquet
Pour créer une table externe partitionnée implicite avec les données stockées dans cet exemple de format Hive, procédez comme suit :
Rubrique parent : Interrogation des tables externes avec partitionnement implicite