Creating a Table

Explains how to create binary and JSON tables using either the Control System, or the CLI.

About this task

There are several methods that you can use to create MapR Database tables including the maprcli, and hbase shell, mapr dbshell commands, and through the Control System. There are two methods that you can use to create both binary tables and JSON tables:
  • Control System
  • CLI

Creating a Table Using the Control System

About this task

To create a table from the Control System, under Data > Tables:

NOTE This option is not available on the Kubernetes version of the Control System.

Procedure

  1. Click Create Table.
    The Create New Table page displays.
  2. Choose the table type:
    • JSON
    • Binary
  3. Specify the following properties under PROPERTIES.
    1. Enter path to the table in the Table Path field.
      Tables are stored in the MapR filesystem. When providing the path to a table, use these conventions.
      • 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 in volume1 in the sanfrancisco cluster, specify the following path: /mapr/sanfrancisco/volume1/customer
    2. Select the interval of time to apply when logging table metrics.
      You can choose to log metrics every 10 seconds, 1 minute (default), or 10 minutes.
    3. Enable (Yes) or disable (No) auto-splitting of table.
      If enabled, the table will be split automatically into regions as the table grows. If disabled, the table can be split manually into regions. By default, auto-splitting is enabled.
    4. Enable (Yes) or disable (No) full bulk load of the table.
      For more information, see Loading Documents into JSON Tables. By default, full bulk load is disabled.
    5. Enable (Yes) or disable (No) auditing of table operations.
      If auditing is enabled at the cluster and volume levels, enabling auditing will cause auditing to start for the table operations.
  4. Specify users, groups, and/or roles that have and/or do not have the following types of access to the table under USER ACCESS CONTROLS.
    Administration Can view and edit the permissions for the table.
    Force Pack Can pack table regions.
    Split Merge Can take the following actions:
    • Split the table into regions or merge regions of the table together.
    • Change the size of the region.
    Index Can create index for this table.
    Bulkload Can load this table with bulk loads if the table was created with bulk load support.
    Replication Access Can set up replication either to or from a table.
    Create/Rename Column Family Can create column families for this table or rename existing column families.
    Delete Column Family Can delete column families associated with the table.
    Administration Can view and edit the permissions for the table.
    Force Pack Can pack table regions.
    Split Merge Can take the following actions:
    • Split the table into regions or merge regions of the table together.
    • Change the size of the region.
    Bulkload Can load this table with bulk loads if the table was created with bulk load support.
    Replication Access Can set up replication either to or from a table.
    Create/Rename Column Family Can create column families for this table or rename existing column families.
    Delete Column Family Can delete column families associated with the table.
    By default, all permissions are given to the user creating the table.
    To grant or block access to users, groups, and/or roles, from the:
    • Basic settings, select the type — public, (OR) user, group, or role — from the drop-down menu, specify the name of the user, group, or role, and select one or more checkbox to grant permissions.
      TIP Click to create a copy of the associated access control setting. Click to remove the associated access control expression.
      To add Access Control Expression (ACE)s for another user, group, or role, click Add Another and repeat this step.
    • Advanced settings, specify public (p) or user (u), group (g), and/or role (r) who have or do not have the type of access using the following boolean expressions and subexpressions:
      • ! — Negation operator.
      • & — AND operation.
      • | — OR operation.
      Use (), parentheses, for subexpressions.
      NOTE You cannot specify user, group, or role individually if access is granted to all users (public).

      Alternatively, click associated with the type of access to use the Access Control Expression window to define access for public or users, group, and/or role. See Defining ACEs for more information.

    NOTE If you switch from Basic to Advanced, the basic settings, if any, are carried over to the advanced settings. If you switch from Advanced to Basic, all the settings are lost because the subexpressions and AND (&) and negation (!) operations that are supported by advanced settings are not supported in the basic settings.
    You can proceed to:
    • Step 5 to set default column family permissions.
    • Step 6 to create the table.
  5. Click Default Column Family Authorization.
    You can set up default permissions for column families on this page.
    Specify public, (OR) users, groups, and/or roles that have and/or do not have the following types of access to the column families under USER ACCESS CONTROLS.
    Read Data Can do column reads. Reads require permission both at the column-family level and at the field level. This permission is inherited by fields within the column family.
    Write Data Can do column writes. Writes require permission both at the column-family level and at the field level. This permission is inherited by fields within the column family.
    Traverse Data Can pass over fields in JSON documents. For example, suppose that a JSON table contains documents of this general structure:
    {
      "_id" : "ID",
      "a" :
         {
           "b" : "value",
           "c" : "value"
         }
    }
    Suppose further that the user sjohnson has read permission on a.b, but not on a. For sjohnson to read a.b, the user needs the traverse permission on a. The user can then pass over field a to a.b. This permission is inherited by fields within the column family.
    Set Compression Can set or change the compression setting for the column family.
    Specify public, (OR) users, groups, and/or roles that have and/or do not have the following types of access to the column families under USER ACCESS CONTROLS.
    Read Data Can do column reads. Reads require permission both at the column-family level and at the field level. This permission is inherited by fields within the column family.
    Write Data Can do column writes. Writes require permission both at the column-family level and at the field level. This permission is inherited by fields within the column family.
    Append Data Can do column appends. Column appends require permission both at the column-family level and at the column level.
    Set Version Can set or change the maximum and minimum number of versions of column values to keep.
    Set Compression Can set or change the compression setting for the column family.
    By default, all permissions are given to the user creating the table.
    To grant or block access to users, groups, and/or roles, from the:
    • Basic settings, select the type — public, (OR) user, group, or role — from the drop-down menu, specify the name of the user, group, or role, and select one or more checkbox to grant permissions.
      TIP Click to create a copy of the associated access control setting. Click to remove the associated access control expression.
      To add ACEs for another user, group, or role, click Add Another and repeat this step.
    • Advanced settings, specify public (p) or user (u), group (g), and/or role (r) who have or do not have the type of access using the following boolean expressions and subexpressions:
      • ! — Negation operator.
      • & — AND operation.
      • | — OR operation.
      Use (), parentheses, for subexpressions.
      NOTE You cannot specify user, group, or role individually if access is granted to all users (public).

      Alternatively, click associated with the type of access to use the Access Control Expression window to define access for public or users, group, and/or role. See Defining ACEs for more information.

    NOTE If you switch from Basic to Advanced, the basic settings, if any, are carried over to the advanced settings. If you switch from Advanced to Basic, all the settings are lost because the subexpressions and AND (&) and negation (!) operations that are supported by advanced settings are not supported in the basic settings.
  6. Click Create Table to create the table.
    You can proceed to:
    • Add column families to the table.
    • View the table information for the newly created table.

Creating a Table Using the CLI or the REST API

About this task

The basic command to create a binary table is:
maprcli table create -path <path>
To create a JSON table, include the -tabletype parameter and set it to json:
maprcli table create -path <path> -tabletype json
The -tabletype parameter is set to binary by default.

The format of the value of the -path parameter depends on whether you are creating a table on a local cluster or a remote cluster:

  • 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
    NOTE You cannot use the following characters in the table name:
     < > ? % \
    To use the following characters in the table name, enclose them either in single or double quotes:
    ; | ( ) / 
    For example:
    maprcli table create -path "/設備^=#;{}&()/"  (or)
    maprcli table create -path '/設備^=#;{}&()/'
    To use either the ' or the " character in the table name, enclose:
    • the ' character within double quotes (")
    • the " character within single quote (')
    For example:
    maprcli table create -path "/'設備^=#;{}&()/"  (or)
    maprcli table create -path '/"設備^=#;{}&()/'

When you create a table with this command, you can set a number of properties. See the table create command.

Creating Tables Using shell Command

About this task

The MapR Database shell command is used only on JSON tables. To run this command, execute the following:

mapr dbshell

After starting the shell, run the create command.

The HBase shell command is used on binary tables only. To run this command, execute the following:

hbase shell

After starting the HBase shell, run the create command. Type help to see a list of commands and their syntax.