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 style Hive ou de données partitionnées de dossier simples stockées dans votre banque d'objets 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 style Hive ou de données partitionnées de dossier simples stockées dans la banque d'objets cloud. - Requête de 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 de données de la banque d'objets générées à partir de données Hive. - Requête de 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'objets qui ont été 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 style Hive ou de données partitionnées de dossier simples stockées dans votre banque d'objets 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 d'exécution des modifications dans 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 matière de performances de type table de partition sans avoir à 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 dans le stockage d'objets qui ont été 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 de 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 souvent trouvé dans les lacs de données est similaire au format de ruche, mais le nom du dossier n'inclut pas les colonnes de partition.
OBJBUCKET/<table>/<value1>/<value2>/file.parquet
Pour obtenir un exemple, reportez-vous à Requête de données de style non-Hive partitionnées implicites externes.
Pour plus d'informations sur les formats de dénomination, 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 Hive 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.Par exemple :
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 Hive 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 automatiquement détectées en recherchant '=' dans le chemin indiqué parfile_uri_list
.column_name
se trouve à gauche de "=" et la valeur se trouve sur le côté droit. Si aucune valeurcolumn_name
n'est trouvée dans le chemin, une erreur est générée.Par exemple :
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 une liste de 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.Par exemple :
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"]}');
Pour plus d'informations, reportez-vous à Procédure CREATE_EXTERNAL_TABLE.
Rubrique parent : Interrogation de tables externes avec partitionnement implicite
Interrogation de données partitionnées implicites externes avec l'organisation du fichier source du format Hive
Utilisez la procédure DBMS_CLOUD.CREATE_EXTERNAL_TABLE
pour créer une table externe partitionnée implicite à partir de données de la banque d'objets générées à partir de données Hive.
Les exemples de fichiers source dans l'exemple suivant utilisent le format de dénomination suivant :
OBJBUCKET/<table>/<partcol1>=<value1>/<partcol2>=<value2>/file.parquet
Examinez les exemples de fichiers 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 des données stockées dans cet exemple de format Hive, procédez comme suit :
Rubrique parent : Interrogation de tables externes avec partitionnement implicite
Interroger des 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 des données du stockage d'objets qui ont été générées à partir de données non Hive.
Les exemples de fichiers source dans l'exemple suivant utilisent le format de dénomination suivant :
OBJBUCKET/<table>/<value1>/<value2>/file.parquet
Examinez les exemples de fichiers 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 des données stockées dans cet exemple de format Hive, procédez comme suit :
Rubrique parent : Interrogation de tables externes avec partitionnement implicite