From bc2aef8ccdb7b21d5e47fa3e6ac5703db650d18d Mon Sep 17 00:00:00 2001 From: Pavithra Ramachandran Date: Wed, 4 Dec 2019 17:31:51 +0530 Subject: [PATCH 1/4] create table document --- ...-ref-syntax-ddl-create-table-datasource.md | 113 ++++++++++++++++ ...-ref-syntax-ddl-create-table-hiveformat.md | 121 ++++++++++++++++++ docs/sql-ref-syntax-ddl-create-table-like.md | 61 +++++++++ docs/sql-ref-syntax-ddl-create-table.md | 12 +- 4 files changed, 306 insertions(+), 1 deletion(-) create mode 100644 docs/sql-ref-syntax-ddl-create-table-datasource.md create mode 100644 docs/sql-ref-syntax-ddl-create-table-hiveformat.md create mode 100644 docs/sql-ref-syntax-ddl-create-table-like.md diff --git a/docs/sql-ref-syntax-ddl-create-table-datasource.md b/docs/sql-ref-syntax-ddl-create-table-datasource.md new file mode 100644 index 0000000000000..f875ec93b0dda --- /dev/null +++ b/docs/sql-ref-syntax-ddl-create-table-datasource.md @@ -0,0 +1,113 @@ +--- +layout: global +title: CREATE DATASOURCE TABLE +displayTitle: CREATE DATASOURCE TABLE +license: | + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--- + +### Description + +The `CREATE TABLE` statement defines a new table using a Data Source. + +### Syntax +{% highlight sql %} +CREATE TABLE [ IF NOT EXISTS ] table_identifier + [ ( col_name1 col_type1 [ COMMENT col_comment1 ], ... ) ] + USING data_source + [ OPTIONS ( key1=val1, key2=val2, ... ) ] + [ PARTITIONED BY ( col_name1, col_name2, ... ) ] + [ CLUSTERED BY ( col_name3, col_name4, ... ) [ SORTED BY ( col_name [ ASC | DESC ], ... ) ] INTO num_buckets BUCKETS ] + [ LOCATION path ] + [ COMMENT table_comment ] + [ TBLPROPERTIES ( key1=val1, key2=val2, ... ) ] + [ AS select_statement ] +{% endhighlight %} + +### Parameters + +
+
table_identifier
+
+ Specifies a table name, which may be optionally qualified with a database name.

+ Syntax: + + [ database_name. ] table_name + +
+
+
+
USING data_source
+
Data Source is the input format used to create the table. Data source can be CSV, TXT, ORC, JDBC, PARQUET, etc.
+
+ +
+
PARTITIONED BY
+
Partitions are created on the table, based on the columns specified.
+
+ +
+
CLUSTERED BY
+
+ Partitions created on the table will be bucketed into fixed buckets based on the column specified for bucketing.

+ NOTE:Bucketing is an optimization technique that uses buckets (and bucketing columns) to determine data partitioning and avoid data shuffle.
+
SORTED BY
+
Determines the order in which the data is stored in buckets. Default is Ascending order.
+ +
+ +
+
LOCATION
+
Path to the directory where table data is stored, could be filesystem, HDFS, etc.
+
+ +
+
COMMENT
+
Table comments are added.
+
+ +
+
TBLPROPERTIES
+
Table properties that has to be set are specified such as `created.by.user`, `owner`, etc. +
+
+ +
+
AS select_statement
+
The table is populated using the data from the select statement.
+
+ +### Examples +{% highlight sql %} + +--Using data source +CREATE TABLE Student (Id INT,name STRING ,age INT) USING CSV; + +--Using data from another table +CREATE TABLE StudentInfo + AS SELECT * FROM Student; + +--Partitioned and bucketed +CREATE TABLE Student (Id INT,name STRING ,age INT) + USING CSV + PARTITIONED BY (age) + CLUSTERED BY (Id) INTO 4 buckets; + +{% endhighlight %} + +### Related Statements +* [CREATE TABLE USING HIVE FORMAT](sql-ref-syntax-ddl-create-table-hiveformat.html) +* [CREATE TABLE LIKE](ssql-ref-syntax-ddl-create-table-like.html) diff --git a/docs/sql-ref-syntax-ddl-create-table-hiveformat.md b/docs/sql-ref-syntax-ddl-create-table-hiveformat.md new file mode 100644 index 0000000000000..4b43c6792dfa5 --- /dev/null +++ b/docs/sql-ref-syntax-ddl-create-table-hiveformat.md @@ -0,0 +1,121 @@ +--- +layout: global +title: CREATE HIVEFORMAT TABLE +displayTitle: CREATE HIVEFORMAT TABLE +license: | + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--- +### Description + +The `CREATE TABLE` statement defines a new table using Hive format. + +### Syntax +{% highlight sql %} +CREATE [ EXTERNAL ] TABLE [ IF NOT EXISTS ] table_identifier + [ ( col_name1[:] col_type1 [ COMMENT col_comment1 ], ... ) ] + [ COMMENT table_comment ] + [ PARTITIONED BY ( col_name2[:] col_type2 [ COMMENT col_comment2 ], ... ) | ( col_name1, col_name2, ... ) ] + [ ROW FORMAT row_format ] + [ STORED AS file_format ] + [ LOCATION path ] + [ TBLPROPERTIES ( key1=val1, key2=val2, ... ) ] + [ AS select_statement ] + +{% endhighlight %} + +### Parameters + +
+
table_identifier
+
+ Specifies a table name, which may be optionally qualified with a database name.

+ Syntax: + + [ database_name. ] table_name + +
+
+ +
+
EXTERNAL
+
Table is defined using the path provided as LOCATION, does not use default location for this table.
+
+ +
+
PARTITIONED BY
+
Partitions are created on the table, based on the columns specified.
+
+ +
+
ROW FORMAT
+
SERDE is used to specify a custom SerDe or the DELIMITED clause inorder to use the native SerDe.
+
+ +
+
STORED AS
+
Table file format.
+
+ +
+
LOCATION
+
Path to the directory where table data is stored, could be filesystem, HDFS, etc.
+
+ +
+
COMMENT
+
Table comments are added.
+
+ +
+
TBLPROPERTIES
+
+ Table properties that has to be set are specified,such as `created.by.user`, `owner`, etc. +
+
+ +
+
AS select_statement
+
The table is populated using the data from the select statement.
+
+ + +### Examples +{% highlight sql %} + +--Using Comment and loading data from another table into the created table +CREATE TABLE StudentInfo + COMMENT 'Table is created using existing data' + AS SELECT * FROM Student; + +--Partitioned table +CREATE TABLE Student (Id INT,name STRING) + PARTITIONED BY (age INT) + TBLPROPERTIES ('owner'='xxxx'); + +CREATE TABLE Student (Id INT,name STRING,age INT) + PARTITIONED BY (name,age); + +--Using Row Format and file format +CREATE TABLE Student (Id INT,name STRING) + ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' + STORED AS TEXTFILE; + +{% endhighlight %} + + +### Related Statements +* [CREATE TABLE USING DATASOURCE](sql-ref-syntax-ddl-create-table-datasource.html) +* [CREATE TABLE LIKE](ssql-ref-syntax-ddl-create-table-like.html) diff --git a/docs/sql-ref-syntax-ddl-create-table-like.md b/docs/sql-ref-syntax-ddl-create-table-like.md new file mode 100644 index 0000000000000..c8396e5ae94d2 --- /dev/null +++ b/docs/sql-ref-syntax-ddl-create-table-like.md @@ -0,0 +1,61 @@ +--- +layout: global +title: CREATE TABLE LIKE +displayTitle: CREATE TABLE LIKE +license: | + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--- +### Description + +The `CREATE TABLE` statement defines a new table using the definition/metadata of an existing table or view. + +### Syntax +{% highlight sql %} +CREATE TABLE [IF NOT EXISTS] table_identifier LIKE source_table_identifier [LOCATION path] +{% endhighlight %} + +### Parameters +
+
table_identifier
+
+ Specifies a table name, which may be optionally qualified with a database name.

+ Syntax: + + [ database_name. ] table_name + +
+
+
+
LOCATION
+
Path to the directory where table data is stored, could be filesystem, HDFS, etc. Location to create an external table.
+
+ + +### Examples +{% highlight sql %} + +--Create table using an exsisting table +CREATE TABLE Student_Dupli like Student; + +--Table is created as external table at the location specified +CREATE TABLE Student_Dupli like Student location '/root1/home'; + +{% endhighlight %} + +### Related Statements +* [CREATE TABLE USING DATASOURCE](sql-ref-syntax-ddl-create-table-datasource.html) +* [CREATE TABLE USING HIVE FORMAT](sql-ref-syntax-ddl-create-table-hiveformat.html) + diff --git a/docs/sql-ref-syntax-ddl-create-table.md b/docs/sql-ref-syntax-ddl-create-table.md index 4ce8ef697c2c2..32e098593100e 100644 --- a/docs/sql-ref-syntax-ddl-create-table.md +++ b/docs/sql-ref-syntax-ddl-create-table.md @@ -19,4 +19,14 @@ license: | limitations under the License. --- -**This page is under construction** +### Description +`CREATE TABLE` statement is used to define a table in an exsisting database. + +The CREATE statements: +* [CREATE TABLE USING DATASOURCE](sql-ref-syntax-ddl-create-table-datasource.html) +* [CREATE TABLE USING HIVE FORMAT](sql-ref-syntax-ddl-create-table-hiveformat.html) +* [CREATE TABLE LIKE](ssql-ref-syntax-ddl-create-table-like.html) + +### Related Statements +- [ALTER TABLE](sql-ref-syntax-ddl-alter-table.html) +- [DROP TABLE](sql-ref-syntax-ddl-drop-table.html) From 2f26e5500ebb2134c96889eac0e00eb9a33bcc6e Mon Sep 17 00:00:00 2001 From: Pavithra Ramachandran Date: Fri, 17 Jan 2020 21:43:41 +0530 Subject: [PATCH 2/4] create table document --- ...-ref-syntax-ddl-create-table-hiveformat.md | 2 +- docs/sql-ref-syntax-ddl-create-table-like.md | 40 ++++++++++++++++++- 2 files changed, 39 insertions(+), 3 deletions(-) diff --git a/docs/sql-ref-syntax-ddl-create-table-hiveformat.md b/docs/sql-ref-syntax-ddl-create-table-hiveformat.md index 4b43c6792dfa5..26ad424662501 100644 --- a/docs/sql-ref-syntax-ddl-create-table-hiveformat.md +++ b/docs/sql-ref-syntax-ddl-create-table-hiveformat.md @@ -66,7 +66,7 @@ CREATE [ EXTERNAL ] TABLE [ IF NOT EXISTS ] table_identifier
STORED AS
-
Table file format.
+
File format for table storage, could be TEXTFILE, ORC, PARQUET,etc.
diff --git a/docs/sql-ref-syntax-ddl-create-table-like.md b/docs/sql-ref-syntax-ddl-create-table-like.md index c8396e5ae94d2..fcc9d4af86920 100644 --- a/docs/sql-ref-syntax-ddl-create-table-like.md +++ b/docs/sql-ref-syntax-ddl-create-table-like.md @@ -24,7 +24,12 @@ The `CREATE TABLE` statement defines a new table using the definition/metadata o ### Syntax {% highlight sql %} -CREATE TABLE [IF NOT EXISTS] table_identifier LIKE source_table_identifier [LOCATION path] +CREATE TABLE [IF NOT EXISTS] table_identifier LIKE source_table_identifier +USING data_source +[ ROW FORMAT row_format ] +[ STORED AS file_format ] +[ TBLPROPERTIES ( key1=val1, key2=val2, ... ) ] +[ LOCATION path ] {% endhighlight %} ### Parameters @@ -32,12 +37,34 @@ CREATE TABLE [IF NOT EXISTS] table_identifier LIKE source_table_identifier [LOCA
table_identifier
Specifies a table name, which may be optionally qualified with a database name.

- Syntax: + Syntax: [ TBLPROPERTIES ( key1=val1, key2=val2, ... ) ] [ database_name. ] table_name
+ +
+
USING data_source
+
Data Source is the input format used to create the table. Data source can be CSV, TXT, ORC, JDBC, PARQUET, etc.
+
+ +
+
ROW FORMAT
+
SERDE is used to specify a custom SerDe or the DELIMITED clause inorder to use the native SerDe.
+
+ +
+
STORED AS
+
File format for table storage, could be TEXTFILE, ORC, PARQUET,etc.
+
+ +
+
TBLPROPERTIES
+
Table properties that has to be set are specified such as `created.by.user`, `owner`, etc. +
+
+
LOCATION
Path to the directory where table data is stored, could be filesystem, HDFS, etc. Location to create an external table.
@@ -50,9 +77,18 @@ CREATE TABLE [IF NOT EXISTS] table_identifier LIKE source_table_identifier [LOCA --Create table using an exsisting table CREATE TABLE Student_Dupli like Student; +--Create table like using a data source +CREATE TABLE Student_Dupli like Student USING CSV; + --Table is created as external table at the location specified CREATE TABLE Student_Dupli like Student location '/root1/home'; +--Create table like using a rowformat +CREATE TABLE Student_Dupli like Student + ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' + STORED AS TEXTFILE + TBLPROPERTIES ('owner'='xxxx'); + {% endhighlight %} ### Related Statements From 7efd7f76927de7a47aab9b61204357396ae1cc1e Mon Sep 17 00:00:00 2001 From: Pavithra Ramachandran Date: Fri, 17 Jan 2020 22:58:21 +0530 Subject: [PATCH 3/4] create table document --- docs/sql-ref-syntax-ddl-create-table-datasource.md | 6 ++++-- docs/sql-ref-syntax-ddl-create-table-hiveformat.md | 5 +++-- docs/sql-ref-syntax-ddl-create-table.md | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/docs/sql-ref-syntax-ddl-create-table-datasource.md b/docs/sql-ref-syntax-ddl-create-table-datasource.md index f875ec93b0dda..9f857673ba51a 100644 --- a/docs/sql-ref-syntax-ddl-create-table-datasource.md +++ b/docs/sql-ref-syntax-ddl-create-table-datasource.md @@ -30,7 +30,9 @@ CREATE TABLE [ IF NOT EXISTS ] table_identifier USING data_source [ OPTIONS ( key1=val1, key2=val2, ... ) ] [ PARTITIONED BY ( col_name1, col_name2, ... ) ] - [ CLUSTERED BY ( col_name3, col_name4, ... ) [ SORTED BY ( col_name [ ASC | DESC ], ... ) ] INTO num_buckets BUCKETS ] + [ CLUSTERED BY ( col_name3, col_name4, ... ) + [ SORTED BY ( col_name [ ASC | DESC ], ... ) ] + INTO num_buckets BUCKETS ] [ LOCATION path ] [ COMMENT table_comment ] [ TBLPROPERTIES ( key1=val1, key2=val2, ... ) ] @@ -110,4 +112,4 @@ CREATE TABLE Student (Id INT,name STRING ,age INT) ### Related Statements * [CREATE TABLE USING HIVE FORMAT](sql-ref-syntax-ddl-create-table-hiveformat.html) -* [CREATE TABLE LIKE](ssql-ref-syntax-ddl-create-table-like.html) +* [CREATE TABLE LIKE](sql-ref-syntax-ddl-create-table-like.html) diff --git a/docs/sql-ref-syntax-ddl-create-table-hiveformat.md b/docs/sql-ref-syntax-ddl-create-table-hiveformat.md index 26ad424662501..1a5033c53bafc 100644 --- a/docs/sql-ref-syntax-ddl-create-table-hiveformat.md +++ b/docs/sql-ref-syntax-ddl-create-table-hiveformat.md @@ -27,7 +27,8 @@ The `CREATE TABLE` statement defines a new table using Hive format. CREATE [ EXTERNAL ] TABLE [ IF NOT EXISTS ] table_identifier [ ( col_name1[:] col_type1 [ COMMENT col_comment1 ], ... ) ] [ COMMENT table_comment ] - [ PARTITIONED BY ( col_name2[:] col_type2 [ COMMENT col_comment2 ], ... ) | ( col_name1, col_name2, ... ) ] + [ PARTITIONED BY ( col_name2[:] col_type2 [ COMMENT col_comment2 ], ... ) + | ( col_name1, col_name2, ... ) ] [ ROW FORMAT row_format ] [ STORED AS file_format ] [ LOCATION path ] @@ -118,4 +119,4 @@ CREATE TABLE Student (Id INT,name STRING) ### Related Statements * [CREATE TABLE USING DATASOURCE](sql-ref-syntax-ddl-create-table-datasource.html) -* [CREATE TABLE LIKE](ssql-ref-syntax-ddl-create-table-like.html) +* [CREATE TABLE LIKE](sql-ref-syntax-ddl-create-table-like.html) diff --git a/docs/sql-ref-syntax-ddl-create-table.md b/docs/sql-ref-syntax-ddl-create-table.md index 32e098593100e..c0e58a41cf5cc 100644 --- a/docs/sql-ref-syntax-ddl-create-table.md +++ b/docs/sql-ref-syntax-ddl-create-table.md @@ -25,7 +25,7 @@ license: | The CREATE statements: * [CREATE TABLE USING DATASOURCE](sql-ref-syntax-ddl-create-table-datasource.html) * [CREATE TABLE USING HIVE FORMAT](sql-ref-syntax-ddl-create-table-hiveformat.html) -* [CREATE TABLE LIKE](ssql-ref-syntax-ddl-create-table-like.html) +* [CREATE TABLE LIKE](sql-ref-syntax-ddl-create-table-like.html) ### Related Statements - [ALTER TABLE](sql-ref-syntax-ddl-alter-table.html) From 0ea1268ab0f676c028994eface8f4367a96aca86 Mon Sep 17 00:00:00 2001 From: Pavithra Ramachandran Date: Wed, 22 Jan 2020 21:09:43 +0530 Subject: [PATCH 4/4] create table document --- docs/sql-ref-syntax-ddl-create-table-datasource.md | 4 ++-- docs/sql-ref-syntax-ddl-create-table-hiveformat.md | 6 +++--- docs/sql-ref-syntax-ddl-create-table-like.md | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/sql-ref-syntax-ddl-create-table-datasource.md b/docs/sql-ref-syntax-ddl-create-table-datasource.md index 9f857673ba51a..9b15c0865b38a 100644 --- a/docs/sql-ref-syntax-ddl-create-table-datasource.md +++ b/docs/sql-ref-syntax-ddl-create-table-datasource.md @@ -73,7 +73,7 @@ CREATE TABLE [ IF NOT EXISTS ] table_identifier
LOCATION
-
Path to the directory where table data is stored, could be filesystem, HDFS, etc.
+
Path to the directory where table data is stored, which could be a path on distributed storage like HDFS, etc.
@@ -83,7 +83,7 @@ CREATE TABLE [ IF NOT EXISTS ] table_identifier
TBLPROPERTIES
-
Table properties that has to be set are specified such as `created.by.user`, `owner`, etc. +
Table properties that have to be set are specified, such as `created.by.user`, `owner`, etc.
diff --git a/docs/sql-ref-syntax-ddl-create-table-hiveformat.md b/docs/sql-ref-syntax-ddl-create-table-hiveformat.md index 1a5033c53bafc..78b7d0581e985 100644 --- a/docs/sql-ref-syntax-ddl-create-table-hiveformat.md +++ b/docs/sql-ref-syntax-ddl-create-table-hiveformat.md @@ -62,7 +62,7 @@ CREATE [ EXTERNAL ] TABLE [ IF NOT EXISTS ] table_identifier
ROW FORMAT
-
SERDE is used to specify a custom SerDe or the DELIMITED clause inorder to use the native SerDe.
+
SERDE is used to specify a custom SerDe or the DELIMITED clause in order to use the native SerDe.
@@ -72,7 +72,7 @@ CREATE [ EXTERNAL ] TABLE [ IF NOT EXISTS ] table_identifier
LOCATION
-
Path to the directory where table data is stored, could be filesystem, HDFS, etc.
+
Path to the directory where table data is stored, Path to the directory where table data is stored, which could be a path on distributed storage like HDFS, etc.
@@ -83,7 +83,7 @@ CREATE [ EXTERNAL ] TABLE [ IF NOT EXISTS ] table_identifier
TBLPROPERTIES
- Table properties that has to be set are specified,such as `created.by.user`, `owner`, etc. + Table properties that have to be set are specified, such as `created.by.user`, `owner`, etc.
diff --git a/docs/sql-ref-syntax-ddl-create-table-like.md b/docs/sql-ref-syntax-ddl-create-table-like.md index fcc9d4af86920..b7d7bdd1d9805 100644 --- a/docs/sql-ref-syntax-ddl-create-table-like.md +++ b/docs/sql-ref-syntax-ddl-create-table-like.md @@ -51,7 +51,7 @@ USING data_source
ROW FORMAT
-
SERDE is used to specify a custom SerDe or the DELIMITED clause inorder to use the native SerDe.
+
SERDE is used to specify a custom SerDe or the DELIMITED clause in order to use the native SerDe.
@@ -61,13 +61,13 @@ USING data_source
TBLPROPERTIES
-
Table properties that has to be set are specified such as `created.by.user`, `owner`, etc. +
Table properties that have to be set are specified, such as `created.by.user`, `owner`, etc.
LOCATION
-
Path to the directory where table data is stored, could be filesystem, HDFS, etc. Location to create an external table.
+
Path to the directory where table data is stored,Path to the directory where table data is stored, which could be a path on distributed storage like HDFS, etc. Location to create an external table.