IBM Cloud Docs
Watson Query CLI

Watson Query CLI

The IBM Cloud® command-line interface (CLI) provides extra capabilities for service offerings. You can use IBM Cloud CLI to manage service instance and virtualizations.

Prerequisites

  • Install the IBM Cloud CLI.

  • Install the <CLI_name> CLI by running the following command:

    ibmcloud plugin install watson-query
    
  • Use ibmcloud login command for logging in to your IBM Cloud account.

  • Set IBM Cloudant service URL. For more information, see Service configuration.

You're notified on the command line when updates to the IBM Cloud CLI and plug-ins are available. Be sure to keep your CLI up to date so that you can use the latest commands. You can view the current version of all installed plug-ins by running ibmcloud plugin list.

Service configuration

When you make a server resource request, you can either set CRN environment variable or set --instance-id in each sub command to identify instance. To set environment variabel, firstly get CRN of service instance by

ibmcloud resource service-instances --service-name data-virtualization --long

Then set the DATA_VIRTUALIZATION_CRN environment variable. You can define this variable two ways:

Export them as environment variables for example,export DATA_VIRTUALIZATION_CRN=.... Store them in a credentials file. As an alternative to ibmcloud login, you can set the environment variable DATA_VIRTUALIZATION_APIKEY to an IAM API key.

IBM Cloud CLI requires Java 1.8.0. You can download the CLI from IBM Cloud to use on your local system as a complement to the IBM Cloud console.

Data sources

Connect data sources to the Watson Query service.

ibmcloud watson-query datasource-connections

Gets all data source connections that are connected to the service.

ibmcloud watson-query datasource-connections 

Examples

Get data connections

ibmcloud watson-query datasource-connections

Example output

{
  "datasource_connections" : [ {
    "agent_class" : "F",
    "dscount" : "0",
    "hostname" : "dv-0.dv.tns.svc.cluster.local",
    "is_docker" : "N",
    "node_name" : "AdminNode",
    "node_description" : "Not specified",
    "port" : "6414",
    "os_user" : "bigsql",
    "data_sources" : [ {
      "cid" : "MSSQL10000",
      "dbname" : "mssql2014db1",
      "connection_id" : "75e4d01b-7417-4abc-b267-8ffb393fb970",
      "srchostname" : "example.ibm.com",
      "srcport" : "1433",
      "srctype" : "MSSQLServer",
      "status" : "string",
      "usr" : "DV-user",
      "uri" : "example.ibm.com:1433/"
    } ]
  } ]
}

ibmcloud watson-query datasource-connection-add

Adds a data source connection to the Watson Query service.

ibmcloud watson-query datasource-connection-add --datasource-type DATASOURCE-TYPE --name NAME --origin-country ORIGIN-COUNTRY --properties PROPERTIES [--asset-category ASSET-CATEGORY] 

Command options

--datasource-type (string)
The type of data source that you want to add. Required.
--name (string)
The name of data source. Required.
--origin-country (string)
The country of data source that you want to add which data originated from ISO 3166 Country Codes. Required.
--properties (PostDatasourceConnectionParametersProperties)
Database information. Example: "{"database":"db1","host":"databases.example.com", "password":"adminpassword", "port":"31365", "ssl":"true", "username":"admin"}". Required.
--asset-category (string)
The asset category. Allowable values: [user,system].

Examples

Add datasource connections

ibmcloud watson-query datasource-connection-add --datasource-type MongoDB --name mongo1  --origin-country us  --properties  "{\"database\":\"db1\",\"host\":\"databases.example.com\", \"password"\:\"adminpassword\", \"port\":\"31365\", \"ssl\":\"true\", \"username\":\"admin\"}"

ibmcloud watson-query datasource-connection-delete

Deletes a data source connection from the watson query service.

ibmcloud watson-query datasource-connection-delete --connection-id CONNECTION-ID --cid CID 

Command options

--connection-id (string)
The connection identifier for the platform.. Required.
--cid (string)
The identifier of the connection for the watson query.. Required.

Examples

Delete datasource connection

ibmcloud watson-query datasource-connection-delete --connection-id 3ba0b656-bbb0-4f1c-8228-e6e800d3b2fa

Users

Manage user access to virtualized table.

ibmcloud watson-query virtualized-table-user-grant

Grant a user access to a specific virtualized table.

ibmcloud watson-query virtualized-table-user-grant --table-name TABLE-NAME --table-schema TABLE-SCHEMA --user USER 

Command options

--table-name (string)
The name of the virtualized table. Required. The minimum length is 1 character.
--table-schema (string)
The schema of the virtualized table. Required. The minimum length is 1 character.
--user (string)
The identifier of the authorization, if grant access to all users, the value is PUBLIC, othervise the value is the watson query username. Required. The minimum length is 1 character.

Examples

Grant a user access to a specific virtualized table

ibmcloud watson-query virtualized-table-user-grant --table-name TABLE1 --table-schema DV_IBMID_270001PD8Q --user user1@ibm.com

ibmcloud watson-query virtualized-table-user-revoke

Revoke user access to the virtualized table.

ibmcloud watson-query virtualized-table-user-revoke --user USER --table-name TABLE-NAME --table-schema TABLE-SCHEMA 

Command options

--user (string)
The watson query user name, if the value is PUBLIC, it means revoke access privilege from all watson query users. Required.
--table-name (string)
The virtualized table's name. Required.
--table-schema (string)
The virtualized table's schema name. Required.

Examples

Revoke user access to the virtualized table

ibmcloud watson-query virtualized-table-user-revoke --table-name TABLE1 --table-schema DV_IBMID_270001PD8Q --user user1@ibm.com

Roles

Manage service roles for users and virtualized tables.

ibmcloud watson-query virtualized-table-role-grant

Grant a user role access to a specific virtualized table.

ibmcloud watson-query virtualized-table-role-grant --table-name TABLE-NAME --table-schema TABLE-SCHEMA --role ROLE 

Command options

--table-name (string)
The name of the virtualized table. Required. The minimum length is 1 character.
--table-schema (string)
The schema of the virtualized table. Required. The minimum length is 1 character.
--role (string)
The identifier of the authorization, if grant access to all users, the value is PUBLIC, othervise the value is the watson query username. Required. The minimum length is 1 character.

Examples

Grants a user role access to a specific virtualized table

ibmcloud watson-query virtualized-table-role-grant --table-name TABLE1 --table-schema DV_IBMID_270001PD8Q --role DV_ENGINEER

ibmcloud watson-query virtualized-table-role-revoke

Revoke roles access to a virtualized table.

ibmcloud watson-query virtualized-table-role-revoke --role ROLE --table-name TABLE-NAME --table-schema TABLE-SCHEMA 

Command options

--role (string)
The watson query role type. Values can be DV_ADMIN, DV_ENGINEER, DV_STEWARD, or DV_WORKER, which correspond to MANAGER, ENGINEER, STEWARD, and USER roles in the user interface. Required.
--table-name (string)
The virtualized table's name. Required.
--table-schema (string)
The virtualized table's schema name. Required.

Examples

Revoke roles access to a virtualized table

ibmcloud watson-query virtualized-table-role-revoke --table-name TABLE1 --table-schema DV_IBMID_270001PD8Q --role DV_ENGINEER

ibmcloud watson-query tables-for-role

Retrieves the list of virtualized tables that have a specific role.

ibmcloud watson-query tables-for-role --role ROLE 

Command options

--role (string)
Watson Query has four roles: MANAGER, STEWARD, ENGINEER and USER The value of rolename should be one of them. Required.

Examples

Get virtualized tables by role

ibmcloud watson-query tables-for-role --role DV_ENGINEER

Example output

{
  "objects" : [ {
    "table_name" : "TEST_TABLE",
    "table_schema" : "ADMIN"
  } ]
}

Securities

Manage Wason Knowledge Catalog(WKC) policy enforcement status.

ibmcloud watson-query policy-status-update

Turn on WKC policy enforcement status.

ibmcloud watson-query policy-status-update --status STATUS 

Command options

--status (string)
Set the status of WKC policy - can be 'enable' or 'disable'. Required.

Examples

Turn on or off WKC policy enforcement status

ibmcloud watson-query policy-status-update --enable

ibmcloud watson-query policy-status

Get WKC policy enforcement status, return enabled or disabled.

ibmcloud watson-query policy-status 

Examples

Get WKC policy enforcement status

ibmcloud watson-query policy-status

Virtualization

Create virtualized table.

ibmcloud watson-query virtualized-table-create

Transform a given data source table into a virtualized table.

ibmcloud watson-query virtualized-table-create --source-table-name SOURCE-NAME --source-table-def-file SOURCE-TABLE-DEF-FILE --sources SOURCES --virtualized-table-name VIRTUALIZED-NAME --virtualized-schema VIRTUALIZED-SCHEMA --virtualized-table-def-file VIRTUALIZED-TABLE-DEF-FILE [--is-included-columns IS-INCLUDED-COLUMNS] [--replace REPLACE] 

Command options

--source-table-name (string)
The name of the source table. Required.
--source-table-def-file (VirtualizeTableSourceTableDefFile)
  Required.
--sources ([]string)
The name of data source. Required.
--virtualized-table-name (string)
The name of the table that will be virtualized. Required.
--virtualized-schema (string)
The schema of the table that will be virtualized. Required.
--virtualized-table-def-file (VirtualizeTableVirtualTableDefFile)
  Required.
--is-included-columns (string)
The columns that are included in the source table.
--replace (bool)
Determines whether to replace columns in the virtualized table.

Examples

Virtualize table

ibmcloud watson-query  virtualized-table-create --source-table-name table1 --source-table-def-file source_tabel_def.json   --virtualized-schema  DV_IBMID_270001PD8Q --sources CONN1:TABLE1 --virtualized-table-name TABLE1  --virtualized-table-def-file virtualized_table_def.json. The json file content example: "[{"column_name":"COL1","column_type":"VARCHAR"}]"

ibmcloud watson-query virtualized-table-delete

Remove specified virtualized table. You must specify the schema and table name.

ibmcloud watson-query virtualized-table-delete --virtualized-schema VIRTUALIZED-SCHEMA --virtualized-name VIRTUALIZED-NAME 

Command options

--virtualized-schema (string)
The schema of virtualized table to be deleted. Required.
--virtualized-name (string)
The name of virtualized table to be deleted. Required.

Examples

Delete virtualized table

ibmcloud watson-query virtualized-table-delete --virtualized-schema DV_IBMID_270001PD8Q --virtualized-name TABLE1

Primary catalog

Manage the primary WKC catalog information in watson query console.

ibmcloud watson-query primary-catalog

Get primary catalog ID from the table.

ibmcloud watson-query primary-catalog 

Examples

Get primary catalog ID from the table DVSYS.INSTANCE_INFO

ibmcloud watson-query primary-catalog

ibmcloud watson-query primary-catalog-set

Insert primary catalog ID into table DVSYS.INSTANCE_INFO.

ibmcloud watson-query primary-catalog-set --guid GUID 

Command options

--guid (string)
Primary catalog ID. Required.

Examples

Insert primary catalog ID into table DVSYS.INSTANCE_INFO

ibmcloud watson-query primary-catalog-set --guid d77fc432-9b1a-4938-a2a5-9f37e08041f6

ibmcloud watson-query primary-catalog-delete

Remove the setting of the primary catalog for enforced publication.

ibmcloud watson-query primary-catalog-delete --guid GUID 

Command options

--guid (string)
The watson query user name, if the value is PUBLIC, it means revoke access privilege from all watson query users. Required.

Publish objects

Publish virtualized table to WKC.

ibmcloud watson-query virtualized-table-publish

Publish virtualized tables to WKC.

ibmcloud watson-query virtualized-table-publish --catalog-id CATALOG-ID --allow-duplicates ALLOW-DUPLICATES --assets ASSETS 

Command options

--catalog-id (string)
Catalog ID. Required.
--allow-duplicates (bool)
Whether duplicated asset allowd. Required.
--assets (CatalogPublishParametersAssetsItem[])
Asset description. Example: "[{"schema": "db2inst1","table": "employee"}]". Required.

Examples

Publish virtualized tables to WKC

ibmcloud watson-query virtualized-table-publish --catalog-id 12c60f7e-c366-4cda-ba3a-bfbb577a5f56 --allow-duplicates true --virtualized-schema DV_IBMID_6610020D12 --virtualized-table EMPLOYEE

Schema examples

The following schema examples represent the data that you need to specify for a command option. These examples model the data structure and include placeholder values for the expected value type. When you run a command, replace these values with the values that apply to your environment as appropriate.

CatalogPublishParametersAssetsItem[]

The following example shows the format of the CatalogPublishParametersAssetsItem[] object.


[ {
  "schema" : "db2inst1",
  "table" : "EMPLOYEE"
} ]

PostDatasourceConnectionParametersProperties

The following example shows the format of the PostDatasourceConnectionParametersProperties object.


{
  "access_token" : "exampleString",
  "account_name" : "exampleString",
  "api_key" : "exampleString",
  "auth_type" : "exampleString",
  "client_id" : "exampleString",
  "client_secret" : "exampleString",
  "collection" : "exampleString",
  "credentials" : "exampleString",
  "database" : "TPCDS",
  "host" : "192.168.0.1",
  "http_path" : "exampleString",
  "jar_uris" : "exampleString",
  "jdbc_driver" : "exampleString",
  "jdbc_url" : "exampleString",
  "password" : "password",
  "port" : "50000",
  "project_id" : "exampleString",
  "properties" : "exampleString",
  "refresh_token" : "exampleString",
  "role" : "exampleString",
  "sap_gateway_url" : "exampleString",
  "server" : "exampleString",
  "service_name" : "exampleString",
  "sid" : "exampleString",
  "ssl" : "false",
  "ssl_certificate" : "exampleString",
  "ssl_certificate_host" : "exampleString",
  "ssl_certificate_validation" : "exampleString",
  "username" : "db2inst1",
  "warehouse" : "exampleString"
}

VirtualizeTableSourceTableDefFile

The following example shows the format of the VirtualizeTableSourceTableDefFile object.


[ {
  "column_name" : "Column1",
  "column_type" : "INTEGER"
} ]

VirtualizeTableVirtualTableDefFile

The following example shows the format of the VirtualizeTableVirtualTableDefFile object.


[ {
  "column_name" : "Column_1",
  "column_type" : "INTEGER"
} ]