GMA024F0. GridDB Web API Guide. Toshiba Digital Solutions Corporation 2017 All Rights Reserved.

Similar documents
GridDB Standard Edition Installation Guide

GridDB Advanced Edition SQL reference

GridDB Advanced Edition SQL reference

Memory may be insufficient. Memory may be insufficient.

Error code. Description of the circumstances under which the problem occurred. Less than 200. Linux system call error.

Service Portal User Guide

Brekeke SIP Server Version 2 Authentication Plug-in Developer s Guide Brekeke Software, Inc.

MasterScope Service Governor Installation Guide. (Windows)

NEC Express5800 Series. StorView Ver. 3. Installation Guide for N F. [Linux Server Edition] A

Lesson 7: Defining an Application

NEC ExpressUpdate Functions and Features. September 20, 2012 Rev. 4.0

Informatica Enterprise Data Catalog REST API Reference

AccuRev Plugin for Crucible Installation and Release Notes

Informatica PowerExchange for Microsoft Azure Blob Storage 10.2 HotFix 1. User Guide

Ninox API. Ninox API Page 1 of 15. Ninox Version Document version 1.0.0

Brekeke PBX Version 3 ARS Plug-in Developer s Guide Brekeke Software, Inc.

Tanium Asset User Guide. Version 1.3.1

SystemManager G 8.0 WebConsole Option

Enterprise Data Catalog Fixed Limitations ( Update 1)

Oracle REST Data Services

FUJITSU Software Interstage AR Processing Server V1.0. Messages

Installing Data Sync Version 2.3

vrealize Log Insight Developer Resources

vrealize Log Insight Developer Resources Update 1 Modified on 03 SEP 2017 vrealize Log Insight 4.0

Command Reference (Help differences) TopologyCmd LIST TopologyCmd IMPORT TopologyCmd EXPORT. Copyright(C) NEC Corporation All rights reserved.

Netwrix Auditor Add-on for Privileged User Monitoring

API Gateway Version September Key Property Store User Guide

Oracle REST Data Services

Accessing the Progress OpenEdge AppServer. From Progress Rollbase. Using Object Script

HKTA TANG HIN MEMORIAL SECONDARY SCHOOL SECONDARY 3 COMPUTER LITERACY. Name: ( ) Class: Date: Databases and Microsoft Access

API Documentation. Release Version 1 Beta

IoT Platform API Reference (Version 4_2.0)

IaaS API Reference (Management Administration)

HappyFox API Technical Reference

Red Hat JBoss Data Grid 7.1 Feature Support Document

API Reference Manual

LabCollector Web Service API

DatabaseRESTAPI

Systemwalker Software Configuration Manager. Reference Guide. Windows/Linux

ExpressCluster for Linux Ver3.0

Technical Note. Isilon OneFS. Isilon Swift Technical Note. Version August 2017

IBM Db2 Open Data RESTful Support

Brekeke PBX Version 3 Administrator's Guide (Basic) Brekeke Software, Inc.

Albis: High-Performance File Format for Big Data Systems

Red Hat JBoss Data Grid 7.1 Migration Guide

Interstage Business Process Manager Analytics V12.1. Migration Guide. Windows/Linux

Documentation Accessibility. Access to Oracle Support. Supported Browsers

SAS Workflow Manager 2.1: Quick Start Tutorial

ovirt SSO Specification

Canonical Identity Provider Documentation

SQL Structured Query Language Introduction

Document Management System GUI. v6.0 User Guide

Red Hat Decision Manager 7.0

MasterScope Virtual DataCenter Automation Media v3.0

IBM Research - Zurich GmbH. Saeumerstrasse Rueschlikon Switzerland

Quriiri HTTP MT API. Quriiri HTTP MT API v , doc version This document describes the Quriiri HTTP MT API version 1 (v1).

Micro Focus Enterprise View. Installing Enterprise View

Troubleshooting Guide

Virtuozzo Automator 6.1

IoT Platform API Reference (Version 1.6)

Unity SDK for Xiaomi (IAP) Unity IAP provides an easy way to integrate Xiaomi IAP with Unity.

Interstage Business Process Manager Analytics V12.0 Studio Guide

INTEGRATION TOOLBOX. Installation Guide. for IBM Tivoli Storage Manager.

Sentences Installation Guide. Sentences Version 4.0

EXPRESSCLUSTER X Integrated WebManager

ExpressCluster for Linux Version 3 Web Manager Reference. Revision 6us

SEARCH by Sound. API Documentation. Spectralmind Audio Intelligence Platform. Spectralmind. Platform version: 1.3 Document version: 1.1.

Nasuni Data API Nasuni Corporation Boston, MA

Systemwalker Software Configuration Manager. Operation Guide. Windows/Linux

Composer Help. Web Request Common Block

Azure-persistence MARTIN MUDRA

Oracle RESTful Services A Primer for Database Administrators

EMSS REST API v Getting Started. February 14, 2017

Red Hat JBoss Enterprise Application Platform 7.2

ETERNUS SF AdvancedCopy Manager V13.1 GUI User s Guide

Red Hat JBoss Fuse 6.1

BMC Remedy Action Request System Using a BIRT Editor to Create or Modify Web Reports

Brekeke PBX Version 2 ARS Plug-in Developer s Guide Brekeke Software, Inc.

CONNEXIVE Platform. Setup card. May 7, 2018

Alloy Navigator API USER S GUIDE. Integration with External Systems. Product Version: 7.0 Document Revision: 1.0 Date: November 30, 2015

FUJITSU Software Interstage Business Process Manager Analytics V Migration Guide. Linux

Salesforce IoT REST API Getting Started Guide

Adlib PDF FileNet Connector Guide PRODUCT VERSION: 5.1

Libelium Cloud Hive. Technical Guide

Perceptive Matching Engine

Contains the Linux Identity Server, the Linux Administration Console, the ESP-enabled SSL VPN Server, and the Traditional SSL VPN Server.

Nasuni Data API Nasuni Corporation Boston, MA

ETERNUS SF AdvancedCopy Manager V13.2 GUI User s Guide

Red Hat Ceph Storage 2 Using Keystone to Authenticate Ceph Object Gateway Users

ExtraHop 7.3 ExtraHop Trace REST API Guide

Troubleshooting Guide

Red Hat CloudForms 4.0

Global Array Manager

Red Hat Ceph Storage 3

Avro Specification

TIBCO Spotfire Statistics Services Release Notes

Adlib PDF FileNet Connector Guide PRODUCT VERSION: 5.3

IBM Content Manager for iseries. Messages and Codes. Version 5.1 SC

1 28/06/ :17. Authenticating Users General Information Manipulating Data. REST Requests

Brekeke SIP Server Version 3 Administrator s Guide Brekeke Software, Inc.

Transcription:

GMA024F0 GridDB Web API Guide Toshiba Digital Solutions Corporation 2017 All Rights Reserved.

Introduction This manual describes GridDB WebAPI s function, configuration method, and notes. Please read this manual prior to using the GridDB. Trademarks GridDB is a trademark of Toshiba Corporation. Oracle and Java are registered trademarks of Oracle and/or its affiliates. Linux is the registered trademark of Linus Torvalds in the U.S. and other countries. Red Hat is a registered trademark of Red Hat, Inc. in the United States and other countries. Other product names are trademarks or registered trademarks of the respective owners. II

Table of Contents 1. About the GridDB Web API...4 2. Functions...5 2.1 Row registration... 5 2.2 Row acquisition... 8 2.3 SQL SELECT execution... 11 2.4 Common function (HTTP request/response)... 14 2.4.1 URI... 14 2.4.2 Request header... 14 2.4.3 Request body... 14 2.4.4 Response code... 15 2.4.5 Response body... 15 3. Installation and setup... 16 3.1 Installation... 16 3.2 Configuration... 16 3.3 Starting and Stopping... 19 3.4 Checking of operation... 19 3.5 Uninstallation... 20 III

1. About the GridDB Web API GridDB provides a Web API to register rows, acquire rows and execute a SQL SELECT statement for GridDB cluster. The Web API is configured as a web application. [Memo] Operations such as data registration and search can be performed for cluster. GridDB Web API is a web application that runs on Apache Tomcat. Multiple clusters can be operated from one Web API (web application). 4

2. Functions The functions of GridDB Web API are shown in this chapter. Function Row registration Row acquisition SQL SELECT execution Description Registers rows to the container. Acquires rows from the container. Executes a SQL SELECT statement 2.1 Row registration This function registers the rows to the container. Specify the rows to be registered in JSON format. Multiple rows can be registered in one container. [Memo] The container to be registered must exist. When the container has no row key, a row will be newly created. When the container has a row key, if a row has the row key that already exists in the container will be updated, otherwise a row will be newly created. When an exception occurs during row registration processing, only some rows may be registered. Therefore, when retrying with an HTTP client when an exception occurs, the same row data may be registered duplicately in a container has no row key. Path /:cluster/dbs/:database/containers/:container/rows Path parameter :cluster :database :container Description Cluster name Database name (Specify public for public (default) database.) Container (table) name HTTP method POST Request Request header Field Description Required Content-Type Specify "application/json" X-GridDB-User Specify the user to access GridDB X-GridDB-Password Specify the password of the user. 5

Request body Specify the rows as following JSON format. Property Description Required rows An array of the rows. Row is an array of the column values. (Example) Specifying 3 rows { } "rows" : [ ["2016-01-16T10:25:00.253Z", 100.5, "success", true ], ["2016-01-16T10:35:00.691Z", 173.9, "error", false ], ["2016-01-16T10:45:00.691Z", 328.2, null, false ], ] Description of a column value of a row Depending on the column data, describe a column value with the following JSON data. Column data JSON data Example Primitive Boolean BOOL Boolean value ( true false ) true or String value ( "true" "false") String STRING Text string "GridDB" Integer BYTE/SHORT/ Number or text string 512 INTEGER/LONG Floating FLOAT/DOUBLE Number or text string 593.5 point Time TIMESTAMP Text string "2016-01-16T10:2 UTC 5:00.253Z" Format YYYY-MM-DDThh:mm:ss.SSSZ Spatial GEOMETRY Text string (WKTrepresentation) "POLYGON((0 0,10 0,10 10,0 10,0 0))" 6

Array Boolean BOOL Array of boolean values [true, false, true] or Array of text string values String STRING Array of text string values ["A","B","C"] Integer BYTE/SHORT/IN Array of numbers [100, 39, 535] TEGER/LONG or Array of text string values Floating FLOAT/DOUBLE Array of numbers [3.52, 6.94, 1.83] point or Array of text string values Time TIMESTAMP Array of text string values (Format is same as the primitive one) ["2016-01-16T10: 25:00.253Z", "2016-01-17T01:4 2:53.038Z"] [Memo] BLOB is unsupported. An error occurs when specifying the container that has the BLOB column. If a NULL value (null of JSON data ) is specified as column value, it operates as follows: When the NOT NULL constraint is specified for the column : Registration error will occur. Otherwise : A NULL value will be registered. Response Status code Please refer to 2.4.4. Response body If processing is successful, the following JSON data will be returned. Property Description count The number of processed rows. Please refer to 2.4.5 for the response body in case of failure. 7

2.2 Row acquisition This function acquire the rows from the container (table). It is also possible to narrow down the rows to be acquired by specifying conditions. Path /:cluster/dbs/:database/containers/:container/rows Path parameter :cluster :database :container Description Cluster name Database name (Specify public for public (default) database.) Container (table) name HTTP method GET Request Request header Field Description Required Content-Type Specify "application/json" when specifying the body as JSON. (when specifying the body) X-GridDB-User Specify the user to access GridDB X-GridDB-Password Specify the password of the user. Request body The upper limit of the rows to be acquired and some conditions can be specified. If all conditions are omitted, all rows of the container can be acquired. Property Description JSON data Required offset Acquisition start position An integer from 0 - limit The number of rows to be acquired An integer from 0 - condition Condition expression Text string - sort Sorting expression Text string - 8

[Memo] If "limit" is set to 0 (zero), all rows matching the condition can be acquired. "offset" can be used together with "limit". (Example) Acquires row data with a column "id" value of 50 or more, sorts it in descending order by the value of "id", and acquires 100 values from the 11th { } "offset" : 10, "limit" : 100, "condition" : "id >= 50", "sort" : "id desc" Response Response body Acquired rows will be returned as the following JSON data. Property Description JSON data columns An array of column information Array name Column name Text string Data Text string rows An array of the rows Array (Example) { } "columns" : [ {"name": "date", "": "TIMESTAMP" }, {"name": "value", "": "DOUBLE" }, {"name": "str", "": "STRING" } ], "rows" : [ ["2016-01-16T10:25:00.253Z", 100.5, "normal" ], ["2016-01-16T10:35:00.691Z", 173.9, "normal" ], ["2016-01-16T10:45:00.032Z", 173.9, null ] ] 9

Column data Depending on the column data, column values with the following JSON data will be returned. Column data JSON data Example Primitive Boolean BOOL Boolean value ( true false ) true or String value ( "true" "false") String STRING Text string "GridDB" Integer BYTE/SHORT/ INTEGER/LONG Number or text string 512 Floating FLOAT/DOUBLE Number or text string 593.5 point Time TIMESTAMP Text string UTC "2016-01-16T10:2 5:00.253Z" Format YYYY-MM-DDThh:mm:ss.SSSZ Spatial GEOMETRY Text string (WKTrepresentation) "POLYGON((0 0,10 0,10 10,0 10,0 0))" Array Boolean BOOL Array of boolean values [true, false, true] or Array of text string values String STRING Array of text string values ["A","B","C"] Integer BYTE/SHORT/IN Array of numbers [100, 39, 535] TEGER/LONG or Array of text string values Floating FLOAT/DOUBLE Array of numbers [3.52, 6.94, 1.83] point or Array of text string values Time TIMESTAMP Array of text string values (Format is same as the primitive one) ["2016-01-16T10: 25:00.253Z", "2016-01-17T01:4 2:53.038Z"] [Memo] BLOB is unsupported. An empty string will be returned when specifying the container that has the BLOB column. If a column value is NULL value, the null of JSON data will be returned. Partitioned container is unsupported for row acquisition. 10

2.3 SQL SELECT execution This function executes a SQL SELECT statement in a GridDB database. It can be used only for GridDB Advanced Edition/Vector Edition. Path /:cluster/dbs/:database/sql Path parameter :cluster :database Description Cluster name Database name (Specify public for public (default) database.) HTTP method GET or POST Request Request header Field Description Required Content-Type Specify "application/json" X-GridDB-User Specify the user to access GridDB X-GridDB-Password Specify the password of the user. Request body Specify a SQL SELECT statement as following JSON format. Field Description JSON data Required Type of query statement Text string - (Only "sql-select" can be specified.) stmt A SQL SELECT statement Text string 11

(Example) { } "" : "sql-select", "stmt" : "select* from emp Response Response body Acquired rows will be returned as the following JSON data. Property Description JSON data columns An array of column information Array name Column name Text string Data Text string rows An array of the rows Array (Example) { } "columns" : [ {"name": "date", "": "TIMESTAMP" }, {"name": "value", "": "DOUBLE" }, {"name": "str", "": "STRING" } ], "rows" : [ ["2016-01-16T10:25:00.253Z", 100.5, "normal" ], ["2016-01-16T10:35:00.691Z", 173.9, "normal" ], ["2016-01-16T10:45:00.032Z", 173.9, null ] ] 12

Column data Depending on the column data, column values with the following JSON data will be returned. Column data JSON data Example Primitive Boolean BOOL Boolean value ( true false ) true or String value ( "true" "false") String STRING Text string "GridDB" Integer BYTE/SHORT/ INTEGER/LONG Number or text string 512 Floating FLOAT/DOUBLE Number or text string 593.5 point Time TIMESTAMP Text string UTC "2016-01-16T10:2 5:00.253Z" Format YYYY-MM-DDThh:mm:ss.SSSZ [Memo] In case that column value is NULL, null will be returned for the column in JSON data. BLOB, GEOMETRY and array s are not supported in this function. For BLOB columns, BLOB will be returned as data, and an empty string will be returned as data value in case that the column value is not NULL. For GEOMETRY and array columns, UNKNOWN will be returned as data, and null will be returned as data value. 13

2.4 Common function (HTTP request/response) This chapter describes the HTTP request /response part common to each function. 2.4.1 URI The URI to be accessed when using the Web API. http://was domain/griddb/v1/:path Specify the WAS domain according to the environment of the web application server on which the Web API is deployed. Specify path of each function as ":path". It is not allowed in this version s GridDB WEB APIs that clusters, databases and containers which name contains any special characters('-', '.', '/', '=') are specified in the path. 2.4.2 Request header Specify the following headers to the request header. Field Description Required Content-Type Specify "application/json" when specifying the body as JSON. (when specifying the body) X-GridDB-User Specify the user to access GridDB X-GridDB-Password Specify the password of the user. 2.4.3 Request body Specify the request body as JSON format. Please refer to the JSON format of each functions. [Memo] Write JSON format data in UTF-8. Write the date in UTC and in the following format: YYYY-MM-DDThh:mm:ss.SSSZ Otherwise, an error will occur. (Example) 2016/01/17T14:32:33.888Z -> An error occurs caused by incorrect separator string. 2016-01-18 -> An error occurs caused by no time specification. 14

2.4.4 Response code The following response code will be returned. Code Description 200 Success 400 Incorrect request data 403 Specified resource is not found 500 An error occurs in Web API or GridDB 2.4.5 Response body Refer to the section on each function for the response body when the processing succeeds. If processing fails, an error message is returned as response body in the following format: { } "version":"v1", "errorcode":"error code", "errormessage":"error message" 15

3. Installation and setup 3.1 Installation (1) Installing the client package Install the client package. rpm -Uvh griddb-xx-client-x.x.x-linux.x86_64.rpm After installing, Web API.war file and configuration files are installed as follows: /usr/gridstore/webapi/griddb.war -> Web API.war file /var/lib/gridstore/webapi/conf/griddb_webapi.properties -> Configuration file /repository.json -> Cluster information definition file /log -> Log output directory (2) Deploying on the web application server Deploy the Web API.war file on the web application server. Web API.war file /usr/gridstore/webapi/griddb.war 3.2 Configuration (1) Specifying cluster configuration (Required) Specify the information of the cluster to be connected from the Web API in the cluster information definition file. Cluster information definition file /var/lib/gridstore/webapi/conf/repository.json Based on the value of the cluster definition file (gs_cluster.json) of the cluster to be connected, specify the cluster configuration method to "mode", and the address information corresponding to the method. 16

Property list Property Description Required clusters An array of cluster information name Cluster name mode Cluster configuration method (MULTICAST FIXED_LIST PROVIDER) address (MULTICAST) Multicast address for row registration and acquisition (MULTICAST) port (MULTICAST) Multicast port for row (MULTICAST) registration and acquisition transactionmember (FIXED_LIST) Connection destination list for (FIXED_LIST) row registration and acquisition providerurl (PROVIDER) Provider URL for all functions (PROVIDER) jdbcaddress (MULTICAST) Multicast address for SQL (MULTICAST) SELECT execution jdbcport (MULTICAST) Multicast port for SQL SELECT (MULTICAST) execution sqlmember (FIXED_LIST) Connection destination list for SQL SELECT execution (FIXED_LIST) (Example) In case of the multicast method { } "clusters" : [ { "name" : "defaultcluster", "mode" : "MULTICAST", "address" : "239.100.100.111", "port" : 31999 } ] 17

[Memo] In GridDB Standard Edition, when using SQL SELECT execution, the response code 500 and the following response body will be returned. { "version":"v1", "errorcode":"e2060b", "errormessage":"[145028:jc_bad_connection] Connection problem occurred (retrycount=x, elapsedmillis=xxxx, failuremillis=xxxx, querytimeoutmillis=(not bounded), logintimeoutmillis=xxxx, operation=login, reason=[145028:jc_bad_connection] Failed to connect" } (2) Configuring Web API behaviors (Option) Configure the behavior of the Web API. If not setting it will work with the default values. Configure the values according to the system. Configuration file /var/lib/gridstore/webapi/conf/griddb_webapi.properties Property Description Default value GridDB configuration failovertimeout Timeout time (second) during an error retry when the 5 Web API connected to a node constituting a cluster which failed connects to a replacement node. transactiontimeout The minimum value (second) of transaction timeout 30 time. containercachesize The maximum number of the container information 100 on the container cache. 18

Web API configuration maxgetrowsize maxputrowsize logintimeout The upper limit of the size for row acquisition and SQL SELECT execution (MB) (1-2048) The upper limit of the size for row registration. (MB) (1-2048) The connection timeout in seconds for SQL SELECT execution (An integer value can be specified. When it is less than 0, SQL SELECT statement can not be executed.) 20 20 5 [Memo] Need to restart tomcat for the changes to take effect. (3) Configuring log output directory (Option) The Web API logs are output to the following directory by default. Log output directory /var/lib/gridstore/webapi/log To change the output directory, edit the following file: Log output directory [WAS install directory]/webapps/griddb/v1/web-inf/classes/logback.xml 3.3 Starting and Stopping To start or stop the Web API, start or stop the web application server. 3.4 Checking of operation To check the operation of the Web API, use curl command in linux or another command. 19

(Example) Row acquisition curl -H "X-GridDB-User:user" -H "X-GridDB-Password:password" http://host:port/griddb /v1/cluster/dbs/public/containers/test/rows (Example) Row registration curl -X POST -H "X-GridDB-User:user" -H "X-GridDB-Password:password" -H "Content-: application/json" -d '{"rows":[["value", 1]]}' http://host:port/griddb/v1/cluster/ dbs/public/containers/test/rows (Example) execution of SQL SELECT curl -X POST -H "X-GridDB-User:user" -H "X-GridDB-Password:password" -H "Content-: application/json" -d '{"stmt": select * from test }' http://host:port/griddb/v1/cluster/ dbs/public/select 3.5 Uninstallation Stop the web application server and remove [WAS install directory]/webapps/gridstore/v1 directory and the deployed.war file. 20