Heim Datenbank MySQL-Tutorial hive分区(partition)简介

hive分区(partition)简介

Jun 07, 2016 pm 02:53 PM
hive partition um 分区 简介

网上有篇关于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';

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

[Linux-System] fdisk-bezogene Partitionsbefehle. [Linux-System] fdisk-bezogene Partitionsbefehle. Feb 19, 2024 pm 06:00 PM

fdisk ist ein häufig verwendetes Linux-Befehlszeilentool zum Erstellen, Verwalten und Ändern von Festplattenpartitionen. Im Folgenden sind einige häufig verwendete fdisk-Befehle aufgeführt: Informationen zur Festplattenpartition anzeigen: fdisk -l Dieser Befehl zeigt die Partitionsinformationen aller Festplatten im System an. Wählen Sie die Festplatte aus, die Sie bedienen möchten: fdisk/dev/sdX Ersetzen Sie /dev/sdX durch den tatsächlichen Namen des Festplattengeräts, das Sie bedienen möchten, z. B. /dev/sda. Neue Partition erstellen:nHier werden Sie durch die Erstellung einer neuen Partition geführt. Befolgen Sie die Anweisungen, um den Partitionstyp, den Startsektor, die Größe und andere Informationen einzugeben. Partition löschen:d Dies führt Sie zur Auswahl der Partition, die Sie löschen möchten. Befolgen Sie die Anweisungen, um die zu löschende Partitionsnummer auszuwählen. Partitionstyp ändern: Dies führt Sie zur Auswahl der Partition, deren Typ Sie ändern möchten. Laut Erwähnung

Lösung für das Problem, dass nach der Win10-Installation keine Partitionierung möglich ist Lösung für das Problem, dass nach der Win10-Installation keine Partitionierung möglich ist Jan 02, 2024 am 09:17 AM

Als wir das Win10-Betriebssystem neu installierten, stellten wir beim Schritt der Festplattenpartitionierung fest, dass das System uns mitteilte, dass keine neue Partition erstellt werden könne und die vorhandene Partition nicht gefunden werden könne. In diesem Fall können Sie meiner Meinung nach versuchen, die gesamte Festplatte neu zu formatieren und das System neu zu installieren, um es zu partitionieren, oder das System über Software usw. neu zu installieren. Mal sehen, wie der Herausgeber es für den spezifischen Inhalt gemacht hat. Ich hoffe, es kann Ihnen helfen. Was tun, wenn Sie nach der Installation von win10 keine neue Partition erstellen können? Methode 1: Formatieren Sie die gesamte Festplatte und partitionieren Sie sie neu oder versuchen Sie, den USB-Stick mehrmals anzuschließen und zu aktualisieren, wenn sich keine wichtigen Daten auf Ihrer Festplatte befinden Beim Partitionierungsschritt werden alle Daten auf der Festplatte gelöscht. Formatieren Sie die gesamte Festplatte neu, partitionieren Sie sie neu und installieren Sie sie dann normal. Methode 2: P

Mar 18, 2024 am 09:10 AM

Object-Relational Mapping (ORM)-Frameworks spielen eine wichtige Rolle in der Python-Entwicklung. Sie vereinfachen den Datenzugriff und die Datenverwaltung, indem sie eine Brücke zwischen Objekt- und relationalen Datenbanken schlagen. Um die Leistung verschiedener ORM-Frameworks zu bewerten, wird in diesem Artikel ein Vergleich mit den folgenden gängigen Frameworks durchgeführt: sqlAlchemyPeeweeDjangoORMPonyORMTortoiseORM Testmethode Der Benchmark verwendet eine SQLite-Datenbank mit 1 Million Datensätzen. Der Test führte die folgenden Vorgänge in der Datenbank durch: Einfügen: 10.000 neue Datensätze in die Tabelle einfügen. Lesen: Alle Datensätze in der Tabelle lesen. Aktualisieren: Ein einzelnes Feld für alle Datensätze in der Tabelle aktualisieren. Löschen: Alle Datensätze in der Tabelle löschen. Jeder Vorgang

So erhöhen Sie die WinRE-Partitionsgröße in Windows 11 So erhöhen Sie die WinRE-Partitionsgröße in Windows 11 Feb 19, 2024 pm 06:06 PM

In diesem Artikel zeigen wir Ihnen, wie Sie die WinRE-Partitionsgröße in Windows 11/10 ändern oder erhöhen. Microsoft wird nun die Windows-Wiederherstellungsumgebung (WinRE) zusammen mit monatlichen kumulativen Updates aktualisieren, beginnend mit Windows 11 Version 22H2. Allerdings verfügen nicht alle Computer über eine Wiederherstellungspartition, die groß genug ist, um die neuen Updates aufzunehmen, was dazu führen kann, dass Fehlermeldungen angezeigt werden. Windows-Wiederherstellungsumgebungsdienst fehlgeschlagen. So erhöhen Sie die WinRE-Partitionsgröße in Windows 11. Um die WinRE-Partitionsgröße auf Ihrem Computer manuell zu erhöhen, führen Sie die unten aufgeführten Schritte aus. Überprüfen und deaktivieren Sie WinRE. Betriebssystempartition verkleinern. Erstellen Sie eine neue Wiederherstellungspartition. Bestätigen Sie die Partition und aktivieren Sie WinRE

Ausführliche Erklärung zum Einrichten der Linux Opt-Partition Ausführliche Erklärung zum Einrichten der Linux Opt-Partition Mar 20, 2024 am 11:30 AM

So richten Sie die Linux-Opt-Partition ein und Codebeispiele In Linux-Systemen wird die Opt-Partition normalerweise zum Speichern optionaler Softwarepakete und Anwendungsdaten verwendet. Durch die richtige Einstellung der Opt-Partition können Systemressourcen effektiv verwaltet und Probleme wie unzureichender Speicherplatz vermieden werden. In diesem Artikel wird detailliert beschrieben, wie eine LinuxOpt-Partition eingerichtet wird, und es werden spezifische Codebeispiele bereitgestellt. 1. Bestimmen Sie die Speicherplatzgröße der Partition. Zuerst müssen wir die für die Opt-Partition erforderliche Speicherplatzgröße ermitteln. Im Allgemeinen wird empfohlen, die Größe der Opt-Partition auf 5 %-1 des gesamten Systemspeicherplatzes festzulegen.

Wie partitioniere ich die Festplatte in Win11? Tutorial zum Partitionieren der Festplatte in einer Win11-Festplatte Wie partitioniere ich die Festplatte in Win11? Tutorial zum Partitionieren der Festplatte in einer Win11-Festplatte Feb 19, 2024 pm 06:01 PM

Viele Benutzer sind der Meinung, dass der Standardpartitionsspeicherplatz des Systems zu klein ist. Wie kann man also die Festplatte in Win11 partitionieren? Benutzer können direkt auf die Verwaltung unter diesem Computer klicken und dann auf die Datenträgerverwaltung klicken, um Betriebseinstellungen vorzunehmen. Auf dieser Website erhalten Benutzer eine ausführliche Anleitung zum Partitionieren einer Festplatte in Win11. Anleitung zum Partitionieren einer Festplatte in Win11 1. Klicken Sie zunächst mit der rechten Maustaste auf diesen Computer und öffnen Sie die Computerverwaltung. 3. Überprüfen Sie dann rechts den Festplattenstatus, um festzustellen, ob Speicherplatz verfügbar ist. (Wenn freier Speicherplatz vorhanden ist, fahren Sie mit Schritt 6 fort). 5. Wählen Sie dann die Menge an Speicherplatz aus, die Sie freigeben möchten, und klicken Sie auf „Komprimieren“. 7. Geben Sie die gewünschte einfache Volume-Größe ein und klicken Sie auf Weiter. 9. Klicken Sie abschließend auf Fertig stellen, um eine neue Partition zu erstellen.

Mar 18, 2024 am 09:19 AM

Object-Relational Mapping (ORM) ist eine Programmiertechnologie, die es Entwicklern ermöglicht, Objektprogrammiersprachen zum Bearbeiten von Datenbanken zu verwenden, ohne SQL-Abfragen direkt schreiben zu müssen. ORM-Tools in Python (wie SQLAlchemy, Peewee und DjangoORM) vereinfachen die Datenbankinteraktion für Big-Data-Projekte. Vorteile Einfachheit des Codes: ORM macht das Schreiben langwieriger SQL-Abfragen überflüssig, was die Einfachheit und Lesbarkeit des Codes verbessert. Datenabstraktion: ORM bietet eine Abstraktionsschicht, die Anwendungscode von Datenbankimplementierungsdetails isoliert und so die Flexibilität verbessert. Leistungsoptimierung: ORMs nutzen häufig Caching- und Batch-Vorgänge, um Datenbankabfragen zu optimieren und dadurch die Leistung zu verbessern. Portabilität: ORM ermöglicht Entwicklern

So partitionieren Sie eine Festplatte So partitionieren Sie eine Festplatte Feb 25, 2024 pm 03:33 PM

So partitionieren Sie die Festplattenverwaltung Mit der kontinuierlichen Weiterentwicklung der Computertechnologie ist die Festplattenverwaltung zu einem unverzichtbaren Bestandteil unserer Computernutzung geworden. Als wichtiger Teil der Festplattenverwaltung kann die Festplattenpartitionierung eine Festplatte in mehrere Teile unterteilen, sodass wir Daten flexibler speichern und verwalten können. Wie kann man also die Festplattenverwaltung partitionieren? Im Folgenden werde ich Ihnen eine detaillierte Einführung geben. Zunächst müssen wir klarstellen, dass es nicht nur eine Möglichkeit gibt, Festplatten zu partitionieren. Wir können die geeignete Festplattenpartitionierungsmethode je nach Bedarf und Zweck flexibel auswählen. oft

See all articles