Hive学習(一)
【metastore】-Mysqlに格納–DBS:hiveのすべてのデータベースを格納するメタデータ–TBSS:hiveのすべてのデータテーブルを格納するメタデータ
【データ型】
【アクションコマンド】–ライブラリを作成し、ライブラリを削除します.
–create database name; –drop database name;
–構築テーブル:
-説明表:-desc table_name; –desc extended table_name; –desc formatted table_name; ——推奨使用–ファイルのロード:
【内部テーブルと外部テーブルの違い】–作成時に外部テーブルにディレクトリを指定する必要がある–削除すると内部テーブルはテーブル構造とメタデータをすべて削除し、外部テーブルはテーブル構造のみを削除し、メタデータは削除しない
【パーティション】–テーブル定義時に対応するpartitionフィールドを指定する必要があります–パーティションフィールドはテーブル定義に表示されません–パーティションを追加する場合は、既存のパーティションに基づいている必要があります–パーティションを削除すると、存在するすべてのパーティションが削除されます–単一パーティション構築テーブル文:create table day_table (id int,content string) partitioned by (dt string); –日単位でパーティション化され、テーブル構造にid、content、dtの3つのフィールドが存在します.dtをフォルダとして区別します.2つのパーティション構築文:create table day_table (id int,content string) partitioned by (dt string,hour string); –日と時間でパーティション化され、テーブル構造にdtとhour列が新しく追加されました.まずdtをフォルダとし、hourサブフォルダで区別します.
【問題】:外部テーブルがパーティションを削除した場合、データは削除されますか?
【データ挿入】役割:–表のコピー–中間表として使用可能
【データ型】
Numeric Types
TINYINT (1-byte signed integer, from -128 to 127)
SMALLINT (2-byte signed integer, from -32,768 to 32,767)
INT/INTEGER (4-byte signed integer, from -2,147,483,648 to 2,147,483,647)
BIGINT (8-byte signed integer, from -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807)
FLOAT (4-byte single precision floating point number)
DOUBLE (8-byte double precision floating point number)
DOUBLE PRECISION (alias for DOUBLE, only available starting with Hive 2.2.0)
DECIMAL
Introduced in Hive 0.11.0 with a precision of 38 digits
Hive 0.13.0 introduced user-definable precision and scale
NUMERIC (same as DECIMAL, starting with Hive 3.0.0)
TIMESTAMP (Note: Only available starting with Hive 0.8.0)
DATE (Note: Only available starting with Hive 0.12.0)
INTERVAL (Note: Only available starting with Hive 1.2.0)
String Types
STRING
VARCHAR (Note: Only available starting with Hive 0.12.0)
CHAR (Note: Only available starting with Hive 0.13.0)
Misc Types
BOOLEAN
BINARY (Note: Only available starting with Hive 0.8.0)
Complex Types
arrays: ARRAY (Note: negative values and non-constant expressions are allowed as of Hive 0.14.)
maps: MAP (Note: negative values and non-constant expressions are allowed as of Hive 0.14.)
structs: STRUCT
union: UNIONTYPE (Note: Only available starting with Hive 0.7.0.)
【アクションコマンド】–ライブラリを作成し、ライブラリを削除します.
CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name
[COMMENT database_comment]
[LOCATION hdfs_path]
[WITH DBPROPERTIES (property_name=property_value, ...)];
DROP (DATABASE|SCHEMA) [IF EXISTS] database_name [RESTRICT|CASCADE];
–create database name; –drop database name;
–構築テーブル:
CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name -- (Note: TEMPORARY available in Hive 0.14.0 and later)
[(col_name data_type [COMMENT col_comment], ... [constraint_specification])]
[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]
[SKEWED BY (col_name, col_name, ...) -- (Note: Available in Hive 0.10.0 and later)]
ON ((col_value, col_value, ...), (col_value, col_value, ...), ...)
[STORED AS DIRECTORIES]
[
[ROW FORMAT row_format]
[STORED AS file_format]
| STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)] -- (Note: Available in Hive 0.6.0 and later)
]
[LOCATION hdfs_path]
[TBLPROPERTIES (property_name=property_value, ...)] -- (Note: Available in Hive 0.6.0 and later)
[AS select_statement]; -- (Note: Available in Hive 0.5.0 and later; not supported for external tables)
CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name
LIKE existing_table_or_view_name
[LOCATION hdfs_path];
data_type
: primitive_type
| array_type
| map_type
| struct_type
| union_type -- (Note: Available in Hive 0.7.0 and later)
primitive_type
: TINYINT
| SMALLINT
| INT
| BIGINT
| BOOLEAN
| FLOAT
| DOUBLE
| DOUBLE PRECISION -- (Note: Available in Hive 2.2.0 and later)
| STRING
| BINARY -- (Note: Available in Hive 0.8.0 and later)
| TIMESTAMP -- (Note: Available in Hive 0.8.0 and later)
| DECIMAL -- (Note: Available in Hive 0.11.0 and later)
| DECIMAL(precision, scale) -- (Note: Available in Hive 0.13.0 and later)
| DATE -- (Note: Available in Hive 0.12.0 and later)
| VARCHAR -- (Note: Available in Hive 0.12.0 and later)
| CHAR -- (Note: Available in Hive 0.13.0 and later)
array_type
: ARRAY < data_type >
map_type
: MAP < primitive_type, data_type >
struct_type
: STRUCT < col_name : data_type [COMMENT col_comment], ...>
union_type
: UNIONTYPE < data_type, data_type, ... > -- (Note: Available in Hive 0.7.0 and later)
row_format
: DELIMITED [FIELDS TERMINATED BY char [ESCAPED BY char]] [COLLECTION ITEMS TERMINATED BY char]
[MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char]
[NULL DEFINED AS char] -- (Note: Available in Hive 0.13 and later)
| SERDE serde_name [WITH SERDEPROPERTIES (property_name=property_value, property_name=property_value, ...)]
file_format:
: SEQUENCEFILE
| TEXTFILE -- (Default, depending on hive.default.fileformat configuration)
| RCFILE -- (Note: Available in Hive 0.6.0 and later)
| ORC -- (Note: Available in Hive 0.11.0 and later)
| PARQUET -- (Note: Available in Hive 0.13.0 and later)
| AVRO -- (Note: Available in Hive 0.14.0 and later)
| JSONFILE -- (Note: Available in Hive 4.0.0 and later)
| INPUTFORMAT input_format_classname OUTPUTFORMAT output_format_classname
constraint_specification:
: [, PRIMARY KEY (col_name, ...) DISABLE NOVALIDATE ]
[, CONSTRAINT constraint_name FOREIGN KEY (col_name, ...) REFERENCES table_name(col_name, ...) DISABLE NOVALIDATE
-説明表:-desc table_name; –desc extended table_name; –desc formatted table_name; ——推奨使用–ファイルのロード:
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)] [INPUTFORMAT 'inputformat' SERDE 'serde'] (3.0 or later)
【内部テーブルと外部テーブルの違い】–作成時に外部テーブルにディレクトリを指定する必要がある–削除すると内部テーブルはテーブル構造とメタデータをすべて削除し、外部テーブルはテーブル構造のみを削除し、メタデータは削除しない
【パーティション】–テーブル定義時に対応するpartitionフィールドを指定する必要があります–パーティションフィールドはテーブル定義に表示されません–パーティションを追加する場合は、既存のパーティションに基づいている必要があります–パーティションを削除すると、存在するすべてのパーティションが削除されます–単一パーティション構築テーブル文:create table day_table (id int,content string) partitioned by (dt string); –日単位でパーティション化され、テーブル構造にid、content、dtの3つのフィールドが存在します.dtをフォルダとして区別します.2つのパーティション構築文:create table day_table (id int,content string) partitioned by (dt string,hour string); –日と時間でパーティション化され、テーブル構造にdtとhour列が新しく追加されました.まずdtをフォルダとし、hourサブフォルダで区別します.
ALTER TABLE table_name ADD [IF NOT EXISTS] PARTITION partition_spec [LOCATION 'location'][, PARTITION partition_spec [LOCATION 'location'], ...];
partition_spec:
: (partition_column = partition_col_value, partition_column = partition_col_value, ...)
【問題】:外部テーブルがパーティションを削除した場合、データは削除されますか?
【データ挿入】役割:–表のコピー–中間表として使用可能
FROM page_view_stg pvs
INSERT OVERWRITE TABLE page_view PARTITION(dt='2008-06-08', country)
SELECT pvs.viewTime, pvs.userid, pvs.page_url, pvs.referrer_url, null, null, pvs.ip, pvs.cnt