hive分区(partition)简介
网上有篇关于hive的partition的使用讲解的比较好,转载了: 一、背景 1、在Hive Select查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作。有时候只需要扫描表中关心的一部分数据,因此建表时引入了partition概念。 2、分区表指的是在创建表时指定
网上有篇关于hive的partition的使用讲解的比较好,转载了:
一、背景
1、在Hive Select查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作。有时候只需要扫描表中关心的一部分数据,因此建表时引入了partition概念。
2、分区表指的是在创建表时指定的partition的分区空间。
3、如果需要创建有分区的表,需要在create表的时候调用可选参数partitioned by,详见表创建的语法结构。
二、技术细节
1、一个表可以拥有一个或者多个分区,每个分区以文件夹的形式单独存在表文件夹的目录下。
2、表和列名不区分大小写。
3、分区是以字段的形式在表结构中存在,通过describe table命令可以查看到字段存在,但是该字段不存放实际的数据内容,仅仅是分区的表示。
4、建表的语法(建分区可参见PARTITIONED BY参数):
CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] [CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS] [ROW FORMAT row_format] [STORED AS file_format] [LOCATION hdfs_path]
5、分区建表分为2种,一种是单分区,也就是说在表文件夹目录下只有一级文件夹目录。另外一种是多分区,表文件夹下出现多文件夹嵌套模式。
a、单分区建表语句:create table day_table (id int, content string) partitioned by (dt string);单分区表,按天分区,在表结构中存在id,content,dt三列。
b、双分区建表语句:create table day_hour_table (id int, content string) partitioned by (dt string, hour string);双分区表,按天和小时分区,在表结构中新增加了dt和hour两列。
表文件夹目录示意图(多分区表):
6、添加分区表语法(表已创建,在此基础上添加分区):
ALTER TABLE table_name ADD partition_spec [ LOCATION 'location1' ] partition_spec [ LOCATION 'location2' ] ... partition_spec: : PARTITION (partition_col = partition_col_value, partition_col = partiton_col_value, ...)
用户可以用 ALTER TABLE ADD PARTITION 来向一个表中增加分区。当分区名是字符串时加引号。例:
ALTER TABLE day_table ADD PARTITION (dt='2008-08-08', hour='08') location '/path/pv1.txt' PARTITION (dt='2008-08-08', hour='09') location '/path/pv2.txt';
7、删除分区语法:
ALTER TABLE table_name DROP partition_spec, partition_spec,...
用户可以用 ALTER TABLE DROP PARTITION 来删除分区。分区的元数据和数据将被一并删除。例:
ALTER TABLE day_hour_table DROP PARTITION (dt='2008-08-08', hour='09');
8、数据加载进分区表中语法:
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]
例:
LOAD DATA INPATH '/user/pv.txt' INTO TABLE day_hour_table PARTITION(dt='2008-08- 08', hour='08'); LOAD DATA local INPATH '/user/hua/*' INTO TABLE day_hour partition(dt='2010-07- 07');
当数据被加载至表中时,不会对数据进行任何转换。Load操作只是将数据复制至Hive表对应的位置。数据加载时在表下自动创建一个目录,文件存放在该分区下。
9、基于分区的查询的语句:
SELECT day_table.* FROM day_table WHERE day_table.dt>= '2008-08-08';
10、查看分区语句:
hive> show partitions day_hour_table; OK dt=2008-08-08/hour=08 dt=2008-08-08/hour=09 dt=2008-08-09/hour=09
三、总结
1、在 Hive 中,表中的一个 Partition 对应于表下的一个目录,所有的 Partition 的数据都存储在最字集的目录中。
2、总的说来partition就是辅助查询,缩小查询范围,加快数据的检索速度和对数据按照一定的规格和条件进行管理。
——————————————————————————————————————
hive中关于partition的操作:
hive> create table mp (a string) partitioned by (b string, c string);
OK
Time taken: 0.044 seconds
hive> alter table mp add partition (b='1', c='1');
OK
Time taken: 0.079 seconds
hive> alter table mp add partition (b='1', c='2');
OK
Time taken: 0.052 seconds
hive> alter table mp add partition (b='2', c='2');
OK
Time taken: 0.056 seconds
hive> show partitions mp ;
OK
b=1/c=1
b=1/c=2
b=2/c=2
Time taken: 0.046 seconds
hive> explain extended alter table mp drop partition (b='1');
OK
ABSTRACT SYNTAX TREE:
(TOK_ALTERTABLE_DROPPARTS mp (TOK_PARTSPEC (TOK_PARTVAL b '1')))
STAGE DEPENDENCIES:
Stage-0 is a root stage
STAGE PLANS:
Stage: Stage-0
Drop Table Operator:
Drop Table
table: mp
Time taken: 0.048 seconds
hive> alter table mp drop partition (b='1');
FAILED: Error in metadata: table is partitioned but partition spec is not specified or tab: {b=1}
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask
hive> show partitions mp ;
OK
b=1/c=1
b=1/c=2
b=2/c=2
Time taken: 0.044 seconds
hive> alter table mp add partition ( b='1', c = '3') partition ( b='1' , c='4');
OK
Time taken: 0.168 seconds
hive> show partitions mp ;
OK
b=1/c=1
b=1/c=2
b=1/c=3
b=1/c=4
b=2/c=2
b=2/c=3
Time taken: 0.066 seconds
hive>insert overwrite table mp partition (b='1', c='1') select cnt from tmp_et3 ;
hive>alter table mp add columns (newcol string);
location指定目录结构
hive> alter table alter2 add partition (insertdate='2008-01-01') location '2008/01/01';
hive> alter table alter2 add partition (insertdate='2008-01-02') location '2008/01/02';

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)
![[Système Linux] Commandes de partition liées au fdisk.](https://img.php.cn/upload/article/000/887/227/170833682614236.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
fdisk est un outil de ligne de commande Linux couramment utilisé pour créer, gérer et modifier des partitions de disque. Voici quelques commandes fdisk couramment utilisées : Afficher les informations de partition de disque : fdisk-l Cette commande affichera les informations de partition de tous les disques du système. Sélectionnez le disque que vous souhaitez utiliser : fdisk/dev/sdX Remplacez /dev/sdX par le nom réel du périphérique de disque que vous souhaitez utiliser, tel que /dev/sda. Créer une nouvelle partition : ceci vous guidera pour créer une nouvelle partition. Suivez les invites pour saisir le type de partition, le secteur de départ, la taille et d'autres informations. Supprimer la partition :d Cela vous guidera pour sélectionner la partition que vous souhaitez supprimer. Suivez les invites pour sélectionner le numéro de partition à supprimer. Modifier le type de partition : cela vous guidera pour sélectionner la partition dont vous souhaitez modifier le type. D'après la mention

Lorsque nous avons réinstallé le système d'exploitation Win10, en ce qui concerne l'étape de partitionnement du disque, nous avons constaté que le système indiquait qu'une nouvelle partition ne pouvait pas être créée et que la partition existante était introuvable. Dans ce cas, je pense que vous pouvez essayer de reformater l'intégralité du disque dur et de réinstaller le système pour le partitionner, ou de réinstaller le système via un logiciel, etc. Jetons un coup d'œil à la façon dont l'éditeur a procédé pour le contenu spécifique ~ J'espère que cela pourra vous aider. Que faire si vous ne parvenez pas à créer une nouvelle partition après l'installation de Win10. Méthode 1 : formatez l'intégralité du disque dur et répartissez-le ou essayez de brancher et de débrancher la clé USB plusieurs fois et de l'actualiser s'il n'y a pas de données importantes sur votre disque dur. , lorsqu'il s'agit de l'étape de partitionnement, supprimez toutes les données du disque dur. Reformatez l'intégralité du disque dur, puis répartissez-le, puis installez-le normalement. Méthode 2 : P

Les frameworks de mappage objet-relationnel (ORM) jouent un rôle essentiel dans le développement de Python, ils simplifient l'accès et la gestion des données en créant un pont entre les bases de données objet et relationnelles. Afin d'évaluer les performances de différents frameworks ORM, cet article comparera les frameworks populaires suivants : sqlAlchemyPeeweeDjangoORMPonyORMTortoiseORM Méthode de test Le benchmark utilise une base de données SQLite contenant 1 million d'enregistrements. Le test a effectué les opérations suivantes sur la base de données : Insérer : Insérer 10 000 nouveaux enregistrements dans la table Lire : Lire tous les enregistrements de la table Mettre à jour : Mettre à jour un seul champ pour tous les enregistrements de la table Supprimer : Supprimer tous les enregistrements de la table Chaque opération

Dans cet article, nous allons vous montrer comment modifier ou augmenter la taille de la partition WinRE sous Windows 11/10. Microsoft mettra désormais à jour l'environnement de récupération Windows (WinRE) parallèlement aux mises à jour cumulatives mensuelles, à commencer par Windows 11 version 22H2. Cependant, tous les ordinateurs ne disposent pas d'une partition de récupération suffisamment grande pour accueillir les nouvelles mises à jour, ce qui peut provoquer l'apparition de messages d'erreur. Échec du service d'environnement de récupération Windows Comment augmenter la taille de la partition WinRE dans Windows 11 Pour augmenter manuellement la taille de la partition WinRE sur votre ordinateur, suivez les étapes mentionnées ci-dessous. Vérifier et désactiver WinRE Shrink OS partition Créer une nouvelle partition de récupération Confirmer la partition et activer WinRE

Comment configurer la partition Linux Opt et exemples de code Dans les systèmes Linux, la partition Opt est généralement utilisée pour stocker les packages logiciels facultatifs et les données d'application. La définition correcte de la partition Opt peut gérer efficacement les ressources système et éviter des problèmes tels qu'un espace disque insuffisant. Cet article détaillera comment configurer une partition LinuxOpt et fournira des exemples de code spécifiques. 1. Déterminez la taille de l'espace de partition. Tout d'abord, nous devons déterminer la taille de l'espace requis pour la partition Opt. Il est généralement recommandé de définir la taille de la partition Opt à 5 % -1 de l'espace système total.

De nombreux utilisateurs estiment que l'espace de partition par défaut du système est trop petit, alors comment partitionner le disque dur sous Win11 ? Les utilisateurs peuvent cliquer directement sur la gestion sous cet ordinateur, puis cliquer sur la gestion des disques pour effectuer les paramètres de fonctionnement. Laissez ce site fournir aux utilisateurs un didacticiel détaillé sur la façon de partitionner un disque dur sous Win11. Tutoriel sur la façon de partitionner un disque dur dans Win11 1. Tout d'abord, cliquez avec le bouton droit sur cet ordinateur et ouvrez Gestion de l'ordinateur. 3. Vérifiez ensuite l'état du disque sur la droite pour voir s'il y a de l'espace disponible. (S'il y a de l'espace libre, passez à l'étape 6). 5. Sélectionnez ensuite la quantité d'espace que vous devez libérer et cliquez sur Compresser. 7. Entrez la taille de volume simple souhaitée et cliquez sur Suivant. 9. Enfin, cliquez sur Terminer pour créer une nouvelle partition.

Le mappage objet-relationnel (ORM) est une technologie de programmation qui permet aux développeurs d'utiliser des langages de programmation objet pour manipuler des bases de données sans écrire directement de requêtes SQL. Les outils ORM en python (tels que SQLAlchemy, Peewee et DjangoORM) simplifient l'interaction avec les bases de données pour les projets Big Data. Avantages Simplicité du code : ORM élimine le besoin d'écrire de longues requêtes SQL, ce qui améliore la simplicité et la lisibilité du code. Abstraction des données : ORM fournit une couche d'abstraction qui isole le code de l'application des détails d'implémentation de la base de données, améliorant ainsi la flexibilité. Optimisation des performances : les ORM utilisent souvent la mise en cache et les opérations par lots pour optimiser les requêtes de base de données, améliorant ainsi les performances. Portabilité : ORM permet aux développeurs de

Comment partitionner la gestion des disques Avec le développement continu de la technologie informatique, la gestion des disques est devenue un élément indispensable de notre utilisation informatique. En tant qu'élément important de la gestion des disques, le partitionnement de disque peut diviser un disque dur en plusieurs parties, nous permettant ainsi de stocker et de gérer les données de manière plus flexible. Alors, comment partitionner la gestion des disques ? Ci-dessous, je vais vous donner une introduction détaillée. Tout d’abord, nous devons préciser qu’il n’existe pas qu’une seule façon de partitionner les disques. Nous pouvons choisir de manière flexible la méthode de partitionnement de disque appropriée en fonction des différents besoins et objectifs. souvent
