Load External JSON Data | Native Object Store ( NOS ) | Teradata Vantage - 17.05 - Loading External Data into the Database Using CREATE TABLE AS...WITH DATA - Advanced SQL Engine - Teradata Database

Teradata Vantageā„¢ - Native Object Store Getting Started Guide

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Release Date
January 2021
Content Type
Programming Reference
Publication ID
B035-1214-175K
Language
English (United States)

If you access the same external data often, copy the data inside the database. To do this, copy the table definitions and data from the existing foreign table to a new target table inside the database using a CREATE TABLE AS ...WITH DATA command. CREATE TABLE AS ...WITH DATA creates a table with two columns: Location and Payload.

Teradata recommends that you break out the payload attributes as individual columns. This allows the columns to be referenced without using DOT notation and allows you to cast the fields to appropriate data types.

The examples use a sample river flow data set. To use your own data, replace the table and column names, and authorization object. See Variable Substitutions for Examples for the credentials and location values for the sample data set.

  1. To run NOS-related commands, log on to the database as a user with the required privileges.
  2. If it does not exist, create the foreign table or ask your database administrator to create the foreign table called riverflow_json. See Setting Up to Run JSON Examples.
  3. Create a table in the database to load a subset of the external data that you are interested in analyzing:
    CREATE MULTISET TABLE riverflowprecip_json AS (
     SELECT CAST(Payload.site_no AS CHAR(8)) SiteNo,
      CAST(Payload.Flow AS FLOAT) ( FORMAT '-ZZZZ9.99') Flow,
      CAST(Payload.GageHeight AS FLOAT) ( FORMAT '-ZZZ9.99') GageHeight,
      CAST(Payload.datetime AS TIMESTAMP(0) FORMAT 'YYYY-MM-DDBHH:MI') Date_Time
     FROM riverflow_json
     WHERE Payload.Precipitation > 0
    ) WITH DATA
    NO PRIMARY INDEX;
  4. Display the number of rows in the table:
    SELECT COUNT(*) FROM riverflowprecip_json;

    Result:

    Count(*)
    -----------
            396