Editing Tables

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

You can use the Control System, the CLI, or the REST API to edit the attributes of a HPE Ezmeral Data Fabric Database binary or JSON table. You can also use the HBase shell to edit a binary table. To edit a table, you must have the following permissions:

  • readAce and writeAce on the volume
  • lookupdir on directories in the path
  • adminaccessperm on the table

Editing Tables Using the Control System

  1. Go to the table information page.
  2. Click Edit Table to display the Edit Table page.
  3. Make changes to the following Properties, where necessary:
    Metrics Interval The interval of time for logging metrics.
    Auto Split 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, this is enabled.
    Bulkload Enable (Yes) or disable (No) full bulk load of the table.
  4. Make changes to the following Security settings, where necessary:
    1. 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.
    2. Make changes as needed to DEFAULT DATA ACCESS CONTROL FOR COLUMN FAMILIES.
      Modify the list of users, groups, and/or roles that have and/or do not have the following types of access to the default column family:
      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.
      Modify the list of users, groups, and/or roles that have and/or do not have the following types of access to the default column family:
      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 Compression Can set or change the compression setting for the column family.
      To:
      • Grant access to a new user, group, or role, click Add Another, select entity Type, enter entity Name, and select the permissions to grant the entity.
      • Create a copy of an existing entity settings, which you can then modify, click .
      • Delete permissions for an entity, click .
  5. Make changes as needed to Table Administration Control settings.
    Modify the list of users, groups, and/or roles that have and/or do not have the following types of administration permissions on the table:
    Admin Can view and edit the permissions for the table.
    Index Can create an index 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.
    Admin 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.
    To:
    • Grant access to a new user, group, or role, click Add Another, select entity Type, enter entity Name, and select the permissions to grant the entity.
    • Create a copy of an existing entity settings, which you can then modify, click .
    • Delete permissions for an entity, click .
  6. Click Save Changes for the changes to take effect.

Editing Tables Using the CLI or the REST API

The following is the command to edit a table:
maprcli table edit -path <path>
Send a request of type POST. For example:
curl -k -X POST 'https://<hostname>:8443/rest/table/edit?path=<path>' --user <username>:<pwd>
  • 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 edit a table, you can change a number of properties including:

  • Enable or disable auditing, autosplitting, and bulkloading
  • Set permissions on table
  • Set permissions for default column families

For full reference for this command, see table edit.

Editing Binary Tables Using HBase Shell

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