You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@carbondata.apache.org by ch...@apache.org on 2017/04/19 06:48:33 UTC
[1/2] incubator-carbondata git commit: added alter table documentation
Repository: incubator-carbondata
Updated Branches:
refs/heads/master 8b4eec82b -> ca07119d1
added alter table documentation
Project: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/commit/ed922ee1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/tree/ed922ee1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/diff/ed922ee1
Branch: refs/heads/master
Commit: ed922ee1d7bfa862923ec31832260ef6bab32ae3
Parents: 8b4eec8
Author: PallaviSingh1992 <pa...@yahoo.co.in>
Authored: Thu Apr 13 17:09:04 2017 +0530
Committer: chenliang613 <ch...@huawei.com>
Committed: Wed Apr 19 14:46:51 2017 +0800
----------------------------------------------------------------------
docs/ddl-operation-on-carbondata.md | 209 ++++++++++++++++++++++++++-----
1 file changed, 176 insertions(+), 33 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/ed922ee1/docs/ddl-operation-on-carbondata.md
----------------------------------------------------------------------
diff --git a/docs/ddl-operation-on-carbondata.md b/docs/ddl-operation-on-carbondata.md
index d9d5718..2983b8a 100644
--- a/docs/ddl-operation-on-carbondata.md
+++ b/docs/ddl-operation-on-carbondata.md
@@ -25,10 +25,15 @@ The following DDL operations are supported in CarbonData :
* [CREATE TABLE](#create-table)
* [SHOW TABLE](#show-table)
+* [ALTER TABLE](#alter-table)
+ - [RENAME TABLE](#rename-table)
+ - [ADD COLUMN](#add-column)
+ - [DROP COLUMNS](#drop-columns)
+ - [CHANGE DATA TYPE](#change-data-type)
* [DROP TABLE](#drop-table)
* [COMPACTION](#compaction)
* [BUCKETING](#bucketing)
-* [TABLE RENAME](#table-rename)
+
## CREATE TABLE
This command can be used to create a CarbonData table by specifying the list of fields along with the table properties.
@@ -133,6 +138,172 @@ TBLPROPERTIES ('COLUMN_GROUPS'='(column1, column2),
SHOW TABLES IN ProductSchema;
```
+## ALTER TABLE
+
+The following section shall discuss the commands to modify the physical or logical state of the existing table(s).
+
+### **RENAME TABLE**
+
+This command is used to rename the existing table.
+```
+ ALTER TABLE [db_name.]table_name RENAME TO new_table_name;
+```
+
+#### Parameter Description
+| Parameter | Description |
+|---------------|-----------------------------------------------------------------------------------------------|
+| db_Name | Name of the database. If this parameter is left unspecified, the current database is selected.|
+|table_name | Name of the existing table. |
+|new_table_name | New table name for the existing table. |
+
+#### Usage Guidelines
+
+- Queries that require the formation of path using the table name for reading carbon store files, running in parallel with Rename command might fail during the renaming operation.
+
+- Renaming of Secondary index table(s) is not permitted.
+
+#### Examples:
+
+```
+ ALTER TABLE carbon RENAME TO carbondata;
+```
+
+```
+ ALTER TABLE test_db.carbon RENAME TO test_db.carbondata;
+```
+
+### **ADD COLUMN**
+
+This command is used to add a new column to the existing table.
+
+```
+ ALTER TABLE [db_name.]table_name ADD COLUMNS (col_name data_type,...)
+ TBLPROPERTIES('DICTIONARY_INCLUDE'='col_name,...',
+ 'DICTIONARY_EXCLUDE'='col_name,...',
+ 'DEFAULT.VALUE.COLUMN_NAME'='default_value');
+```
+
+#### Parameter Description
+| Parameter | Description |
+|--------------------|-----------------------------------------------------------------------------------------------------------|
+| db_Name | Name of the database. If this parameter is left unspecified, the current database is selected. |
+| table_name | Name of the existing table. |
+| col_name data_type | Name of comma-separated column with data type. Column names contain letters, digits, and underscores (_). |
+
+NOTE: Do not name the column after name, tupleId, PositionId, and PositionReference when creating Carbon tables because they are used internally by UPDATE, DELETE, and secondary index.
+
+#### Usage Guidelines
+
+- Apart from DICTIONARY_INCLUDE, DICTIONARY_EXCLUDE and default_value no other property will be read. If any other property name is specified, error will not be thrown, it will be ignored.
+
+- If default value is not specified, then NULL will be considered as the default value for the column.
+
+- For addition of column, if DICTIONARY_INCLUDE and DICTIONARY_EXCLUDE are not specified, then the decision will be taken based on data type of the column.
+
+#### Examples:
+
+```
+ ALTER TABLE carbon ADD COLUMNS (a1 INT, b1 STRING);
+```
+
+```
+ ALTER TABLE carbon ADD COLUMNS (a1 INT, b1 STRING) TBLPROPERTIES('DICTIONARY_EXCLUDE'='b1');
+```
+
+```
+ ALTER TABLE carbon ADD COLUMNS (a1 INT, b1 STRING) TBLPROPERTIES('DICTIONARY_INCLUDE'='a1');
+```
+
+```
+ ALTER TABLE carbon ADD COLUMNS (a1 INT, b1 STRING) TBLPROPERTIES('DEFAULT.VALUE.a1'='10');
+```
+
+
+### **DROP COLUMNS**
+
+This command is used to delete a existing column or multiple columns in a table.
+
+```
+ ALTER TABLE [db_name.]table_name DROP COLUMNS (col_name, ...);
+```
+
+#### Parameter Description
+| Parameter | Description |
+|------------|----------------------------------------------------------------------------------------------------------|
+| db_Name | Name of the database. If this parameter is left unspecified, the current database is selected. |
+| table_name | Name of the existing table. |
+| col_name | Name of comma-separated column with data type. Column names contain letters, digits, and underscores (_) |
+
+#### Usage Guidelines
+
+- Deleting a column will also clear the dictionary files, provided the column is of type dictionary.
+
+- For delete column operation, there should be at least one key column that exists in the schema after deletion else error message will be displayed and the operation shall fail.
+
+#### Examples:
+
+If the table contains 4 columns namely a1, b1, c1, and d1.
+
+- **To delete a single column:**
+
+```
+ ALTER TABLE carbon DROP COLUMNS (b1);
+```
+
+```
+ ALTER TABLE test_db.carbon DROP COLUMNS (b1);
+```
+
+
+- **To delete multiple columns:**
+
+```
+ ALTER TABLE carbon DROP COLUMNS (b1,c1);
+```
+
+```
+ ALTER TABLE carbon DROP COLUMNS (b1,c1);
+```
+
+### **CHANGE DATA TYPE**
+
+This command is used to change the data type from INT to BIGINT or decimal precision from lower to higher.
+
+```
+ ALTER TABLE [db_name.]table_name CHANGE col_name col_name changed_column_type;
+```
+
+#### Parameter Description
+| Parameter | Description |
+|---------------------|-----------------------------------------------------------------------------------------------------------|
+| db_Name | Name of the database. If this parameter is left unspecified, the current database is selected. |
+| table_name | Name of the existing table. |
+| col_name | Name of comma-separated column with data type. Column names contain letters, digits, and underscores (_). |
+| changed_column_type | The change in the data type. |
+
+#### Usage Guidelines
+
+- Change of decimal data type from lower precision to higher precision will only be supported for cases where there is no data loss.
+
+#### Valid Scenarios
+- Invalid scenario - Change of decimal precision from (10,2) to (10,5) is not valid as in this case only scale is increased but total number of digits remain the same.
+
+- Valid scenario - Change of decimal precision from (10,2) to (12,3) is valid as the total number of digits are increased by 2 but scale is increased only by 1 which will not lead to any data loss.
+
+- Note :The allowed range is 38,38 (precision, scale) and is a valid upper case scenario which is not resulting in data loss.
+
+#### Examples:
+- **Changing data type of column a1 from INT to BIGINT**
+
+```
+ ALTER TABLE test_db.carbon CHANGE a1 a1 BIGINT;
+```
+- **Changing decimal precision of column a1 from 10 to 18.**
+
+```
+ ALTER TABLE test_db.carbon CHANGE a1 a1 DECIMAL(18,2);
+```
+
## DROP TABLE
This command is used to delete an existing table.
@@ -192,15 +363,15 @@ of columns is used.
TBLPROPERTIES('BUCKETNUMBER'='noOfBuckets',
'BUCKETCOLUMNS'='columnname')
```
-
-## Parameter Description
+
+### Parameter Description
| Parameter | Description | Optional |
|--------------- |------------------------------------------------------------------------------------------------------------------------------ |---------- |
| BUCKETNUMBER | Specifies the number of Buckets to be created. | No |
| BUCKETCOLUMNS | Specify the columns to be considered for Bucketing | No |
-## Usage Guidelines
+### Usage Guidelines
- The feature is supported for Spark 1.6.2 onwards, but the performance optimization is evident from Spark 2.1 onwards.
@@ -209,7 +380,7 @@ of columns is used.
- Columns in the BUCKETCOLUMN parameter must be only dimension. The BUCKETCOLUMN parameter can not be a measure or a combination of measures and dimensions.
-## Example :
+### Example :
```
CREATE TABLE IF NOT EXISTS productSchema.productSalesTable (
@@ -228,33 +399,5 @@ of columns is used.
'NO_INVERTED_INDEX'='productBatch',
'BUCKETNUMBER'='4',
'BUCKETCOLUMNS'='productName')
- ```
-
-## TABLE RENAME
- This command is used to rename the existing table.
-
-### Syntax
-```
- ALTER TABLE [db_name.]table_name RENAME TO new_table_name;
-```
-
-### Parameter Description
-
-| Parameter | Description |
-|---------------|-----------------------------------------------------------------------------------------------------------------------------------------------|
-| db_name | Name of the database. If this parameter is left unspecified, the current database is selected. |
-| table_name | Name of the existing table.|
-|new_table_name | New table name for the existing table. |
-
-### Usage Guidelines
-Following conditions must be met for successful rename operation:
-* Queries running in parallel which requires the formation of path using the table name for reading carbon store files might fail during this operation.
-* Secondary index table rename is not permitted.
-
-### Example:
-```
- ALTER TABLE carbon RENAME TO carbondata;
-
- ALTER TABLE test_db.carbon RENAME TO test_db.carbondata;
```
[2/2] incubator-carbondata git commit: [CARBONDATA-857] Added Alter
Table documentation This closes #794
Posted by ch...@apache.org.
[CARBONDATA-857] Added Alter Table documentation This closes #794
Project: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/commit/ca07119d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/tree/ca07119d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/diff/ca07119d
Branch: refs/heads/master
Commit: ca07119d121efd8c4b2f95d0ab5cb79a4851aa50
Parents: 8b4eec8 ed922ee
Author: chenliang613 <ch...@huawei.com>
Authored: Wed Apr 19 14:48:04 2017 +0800
Committer: chenliang613 <ch...@huawei.com>
Committed: Wed Apr 19 14:48:04 2017 +0800
----------------------------------------------------------------------
docs/ddl-operation-on-carbondata.md | 209 ++++++++++++++++++++++++++-----
1 file changed, 176 insertions(+), 33 deletions(-)
----------------------------------------------------------------------