Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
CREATE OR REPLACE FOLDER '/01-base_layer' ;

CREATE OR REPLACE FOLDER '/01-base_layer/01-connections' ;

CREATE OR REPLACE FOLDER '/01-base_layer/01-connections/Box' ;

DROP DATASOURCE DF IF EXISTS {CONNECTION_NAME} CASCADE;

CREATE DATASOURCE DF {CONNECTION_NAME}
    FOLDER = '/01-base_layer/01-connections/box'
    ROUTE HTTP 'http.CommonsHttpClientConnection,120000' GET 'https://api.box.com/2.0/files/{BOX_FILE_ID}/content'
    CHECKCERTIFICATES
    AUTHENTICATION OAUTH20 ( 
      ACCESSTOKEN = 'blah'
      REQUESTSIGNINGMETHOD = HEADER
      AUTHENTICATION_GRANT = CLIENT_CREDENTIALS_GRANT
      TOKENENDPOINTURL = 'https://api.box.com/oauth2/token'
      EXTRA_PARAMETERS_OF_REFRESH_TOKEN_REQUEST (
          'box_subject_type' = 'enterprise', 
          'box_subject_id' = '192935'
      )
      CLIENTIDENTIFIER = ''${CI_GET_FROM_DSE}
      CLIENTSECRET = '' ENCRYPTED${CS_GET_FROM_DSE}
       ACCESSTOKENEXPIRESIN = 4155
    )
    PROXY OFF
    COLUMNDELIMITER = ','
    ENDOFLINEDELIMITER = '\n'
    HEADER = TRUE;

...

Code Block
CREATE OR REPLACE FOLDER '/01-base_layer' ;

CREATE OR REPLACE FOLDER '/01-base_layer/01-connections' ;

CREATE OR REPLACE FOLDER '/01-base_layer/01-connections/Box' ;

DROP DATASOURCE JSON IF EXISTS {CONNECTION_NAME} CASCADE;

CREATE DATASOURCE JSON {CONNECTION_NAME}
    FOLDER = '/01-base_layer/01-connections/box'
    ROUTE HTTP 'http.CommonsHttpClientConnection,120000' GET 'https://api.box.com/2.0/files/{BOX_FILE_ID}/content'
    AUTHENTICATION OAUTH20 ( 
      ACCESSTOKEN = 'blah'
      REQUESTSIGNINGMETHOD = HEADER
      AUTHENTICATION_GRANT = CLIENT_CREDENTIALS_GRANT
      TOKENENDPOINTURL = 'https://api.box.com/oauth2/token'
      EXTRA_PARAMETERS_OF_REFRESH_TOKEN_REQUEST (
          'box_subject_type' = 'enterprise', 
          'box_subject_id' = '192935'
      )
      CLIENTIDENTIFIER = ''${CI_GET_FROM_DSE}
      CLIENTSECRET = ''${CS_GET_FROM_DSE}
      ACCESSTOKENEXPIRESIN = 4155
    )
    PROXY OFF;

...

  1. Copy the VQL below into the shell

  2. Replace {CONNECTION_NAME} with your desired connection name

  3. Replace {BOX_FILE_ID} with the ID of your file in Box

  4. Execute the VQL

  5. Open the new connection and make any changes to accomodate your spreadsheet

  6. Click Create Base View

VQL

Code Block
CREATE OR REPLACE FOLDER '/01-base_layer' ;

CREATE OR REPLACE FOLDER '/01-base_layer/01-connections' ;

CREATE OR REPLACE FOLDER '/01-base_layer/01-connections/Box' ;

CREATE OR REPLACE DATASOURCE CUSTOM ${CONNECTION_NAME}
    FOLDER = '/01-base_layer/01-connections/boxslate'
    CLASSNAME='com.denodo.vdb.contrib.wrapper.xls.ExcelWrapper'
    DESCRIPTION='';

CREATE OR REPLACE WRAPPER CUSTOM ${CONNECTION_NAME}
    FOLDER = '/01-base_layer/01-connections/boxslate'
    DATASOURCENAME=${CONNECTION_NAME}
    PARAMETERS (
      'Type of file' = 'Excel 2007 or later (*.xlsx)',
      'File location' = ROUTE HTTP 'http.CommonsHttpClientConnection,120000' GET 'https://api.box.com/2.0/files/{BOX_FILE_ID}1493246708852/content'
        AUTHENTICATION OAUTH20 ( 
          ACCESSTOKEN = 'blah'
          REQUESTSIGNINGMETHOD = HEADER
          AUTHENTICATION_GRANT = CLIENT_CREDENTIALS_GRANT
          TOKENENDPOINTURL = 'https://api.box.com/oauth2/token'
          EXTRA_PARAMETERS_OF_REFRESH_TOKEN_REQUEST (
              'box_subject_type' = 'enterprise', 
              'box_subject_id' = '192935'
          )
          CLIENTIDENTIFIER = ''${CI_GET_FROM_DSE}
          CLIENTSECRET = ''${CS_GET_FROM_DSE}
        )
        PROXY OFF,
      'Worksheet' = '${SHEET_NAME}',
      'Extract data from all sheets' = false,
      'Extract sheet name as a new column' = false,
      'Has headers' = true,
      'Stream tuples' = true
    );

...