table create

Creates a new MapR-DB binary or JSON table.

Syntax

CLI

maprcli table create
-path <path> 
[ -copymetafrom <path to source table> ]
[ -copymetatype all|cfs|aces|splits|attrs ]
[ -regionsizemb <region size in MB> ]
[ -autosplit true|false ]
[ -bulkload true|false ]
[ -audit true|false ] 
[ -tabletype Table Type - json or binary. default: binary ]
[ -insertionorder Retain Insertion Order within document - only for JSON table type. default : true ]
[ -packperm <Pack Permission settings> ]
[ -bulkloadperm <Bulk load Permission settings> ]
[ -splitmergeperm <Split and Merge Permission settings> ]
[ -createrenamefamilyperm <Add/Rename Family Permission settings>
]
[ -deletefamilyperm <Delete Family Permission settings> ]
[ -adminaccessperm <ACE Admin Permission settings> ]
[ -replperm <Replication Admin Permission settings> ]
[ -defaultversionperm <CF Versions Default Permission setting>
]
[ -defaultcompressionperm <CF Compression Default Permission
setting> ]
[ -defaultmemoryperm <CF Memory Default Permission setting>
]
[ -defaultreadperm <CF Read Default Permission setting> ]
[ -defaultwriteperm <CF Write Default Permission setting> ]
[ -defaulttraverseperm CF Traverse Default Permission ]
[ -defaultappendperm <CF Append Default Permission setting>
]
REST
http[s]://<host>:<port>/rest/table/create?path=<path>

Parameters

Parameter

Description

path

The path to the new MapR-DB table.

  • For a path on the local cluster, start the path at the volume mount point. For example, for a table named test under a volume with a mount point at /volume1, specify the following path: /volume1/test
  • For a path on a remote cluster, you must also specify the cluster name in the path. For example, for a table named customer under volume1 in the sanfrancisco cluster, specify the following path:/mapr/sanfrancisco/volume1/customer
copymetafrom

The path to a table that contains the metadata that should be used to create the table.

  • For a path on the local cluster, start the path at the volume mount point. For example, if you want to copymetadata from a table named test under volume1 which has a mount point at /volume1, specify the following path: /volume1/test
  • For a path on a remote cluster, you must also specify the cluster name in the path. For example, if you want to copymetadata from a table named test under volume1 in the sanfrancisco cluster, specify the following path: /mapr/sanfrancisco/volume1/customer
copymetatype

The type of metadata to copy from the table identified in the copymetafrom parameter. You can specify one or more of the following options in a comma separated list:

  • all. Copy all metadata. This is the default.
  • cfs. Copy column family metadata.
  • aces. Copy ACE permissions.
  • splits. Copy split keys.
  • attrs. Copy table attributes.
regionsizemb

The average size of the regions into which MapR-DB tries to split the table as the table grows. The default is 4096 MB. This value is ignored if autosplit is set to false.

If autosplit is set to true, MapR-DB splits a region when the size of the region exceeds 150% of the average value. For example, if the average value is 4096 MB, MapR-DB splits a region that is larger than 6144 MB.

Although splits are automatic, merges are not. For example, if the value of regionsizemb is changed from 8 GB to 4 GB, all regions that are eligible are split automatically, if autosplit is set to true. However, if the value of regionsizemb is changed from 2 GB to 4 GB, regions smaller than 4 GB are not automatically merged.

Note: When a table has less than 4 regions, MapR-DB ignores the regionsizemb parameter and splits regions at a lower threshold.
autosplit

A Boolean value that specifies whether to split the table into regions automatically as the table grows. The average size of each region is determined by the regionsizemb parameter.

The default value is true. If you set the value to false, you can manually split tables into regions by using the table region split command.

bulkload

A Boolean value that specifies whether to allow a full bulk load of the table. The default is false. For more information, see Bulk Loading and MapR-DB Binary Tables and Loading Documents into JSON Tables.

audit Specifies whether to turn auditing on for the table. If auditing is also enabled at the cluster level with the maprcli audit data command and enabled for the current volume, setting this value to true causes auditing to start for the table.
tabletype Specifies whether the table will be a binary table or a JSON table. The values are binary and json. The default is binary.
insertionorder

Applies to JSON tables only: Specifies whether query results are to list fields in the order in which fields were inserted into column families. Column families are always returned in alphabetical order according to their names.

For example, suppose you had a JSON table that contained documents with this general structure:
{
     "_id":"value",
     "title" : "Name of movie",
     "trailers" :
          {
               "theatrical" : "Link to .mp4 file",
               "teaser" : "Link to .mp4 file"
          }
     "images":
          {
               "small" : "Link to .jpg file",
               "large" : "Link to .jpg file"
          }
}
Both trailers and images are separate column families named, say, cf1 and cf2 respectively (while title belongs to default column family).
An application retrieves the full document for each movie. If -insertionorder is set to true, the results are returned in this order:
{
     "trailers" :
          {
               "theatrical" : "Link to .mp4 file",
               "teaser" : "Link to .mp4 file"
          }
     "images" :
          {
               "small" : "Link to .jpg file",
               "large" : "Link to .jpg file"
          },
     "title" : "Name of movie",
}
The results are identical to the original document, except that the fields are arranged by column family names (cf1, cf2, and default) in alphabetical order, as they always are for a query.
If -insertionorder is set to false, the results are returned in this order:
{
     "images" :
          {
               "large" : "Link to .jpg file",
               "small" : "Link to .jpg file"
          },
     "title" : "Name of movie",
     "trailers" :
          {
               "teaser" : "Link to .mp4 file",
               "theatrical" : "Link to .mp4 file"
          }
}
The results are similar to the previous results. This time, however, all the fields are in alphabetical order.
packperm The Access Control Expression that controls who can pack table regions. By default, permission is given to the user ID that is used to create the table.
bulkloadperm The Access Control Expression that controls who can load this table with bulk loads if the table was created with bulk load support. By default, permission is given to the user ID that is used to create the table.
splitmergeperm

The Access Control Expression that controls who can take the following actions:

  • Run the table region split and table region merge commands to split the table into regions or to merge regions of the table together.
  • Change the value of regionsizemb.

By default, permission is given to the user ID that is used to create the table.

createrenamefamilyperm The Access Control Expression that controls who can create column families for this table or rename existing column families. By default, permission is given to the user ID that is used to create the table.
deletefamilyperm The Access Control Expression that defines access to delete column families for this table. Delimit the expression with single-quotation marks. By default, permission is given to the user ID that is used to create the table.
adminaccessperm The Access Control Expression that controls who can view and edit the permissions for this table. By default, permission is given to the user ID that is used to create the table.
replperm The Access Control Expression that controls who can set up replication either to or from a table. By default, permission is given to the user ID that is used to create the table

defaultversionperm

The default Access Control Expression for the version permission on new column families that are created in this table. If no value is specified, the default is u:<username of the table creator>. This value of the parameter versionperm in the table cf create and table cf edit commands overrides this value.
Note: This permission is not applicable to JSON tables. Versioning is not supported for JSON documents.
defaultcompressionperm Applies to binary tables only: The default Access Control Expression for the compression permission on new column families that are created in this table. If no value is specified, the default is u:<username of the table creator>. This value of the parameter compressionperm in the table cf create and table cf edit commands overrides this value.

defaultmemoryperm

The default Access Control Expression for the memory permission on new column families that are created in this table. If no value is specified, the default is u:<username of the table creator>. This value of the parameter memoryperm in the table cf create and table cf edit commands overrides this value.

defaultreadperm The default Access Control Expression for the read permission on new column families that are created in this table. If no value is specified, the default is u:<username of the table creator>. This value of the parameter readperm in the table cf create and table cf edit commands overrides this value.

For more information about this permission as it applies to JSON tables, see Granting or Denying Access to Fields with Access-Control Expressions.

defaultwriteperm The default Access Control Expression for the write permission on new column families that are created in this table. If no value is specified, the default is u:<username of the table creator>. This value of the parameter writeperm in the table cf create and table cf edit commands overrides this value.

For more information about this permission as it applies to JSON tables, see Granting or Denying Access to Fields with Access-Control Expressions.

defaulttraverseperm Applies to JSON tables only: The default Access Control Expression for the traverse permission on new column families. For more information about this permission, see Granting or Denying Access to Fields with Access-Control Expressions.
defaultappendperm Applies to binary tables only: The default Access Control Expression for the append permission on new column families that are created in this table. If no value is specified, the default is u:<username of the table creator>. This value of the parameter appendperm in the table cf create and table cf edit commands overrides this value.

Examples

Creates a new MapR table named newtable in volume1:

CLI

maprcli table create -path /volume1/newtable

REST

https://ip.address:8443/rest/table/create?path=%2Fvolume1%2Fnewtable