Функция CAST в Cassandra

Опубликовано: 17 Августа, 2021

Функция CAST помогает в преобразовании данных из одного типа данных в другой тип данных в Cassandra.

В Cassandra функция CAST Поддерживается в операторах SELECT. Давайте посмотрим, как мы можем использовать функцию CAST в операторе select.

 ВЫБРАТЬ CAST ([имя поля] КАК [тип данных]) 
ОТ [название таблицы]

Основная функция CAST:

  • Он преобразует любой собственный тип данных в текстовый тип данных в таких форматах, как ASCII и UTF-8.
  • Он преобразует числовые типы данных, такие как int в smallint, smallint в int и т. Д.
  • Используя функцию CAST, мы можем преобразовать наиболее распространенный вариант использования.
  • Это очень полезно в случае оптимизации, когда нам нужно часто менять один тип данных на другой.
  • Используя функцию CAST, мы можем преобразовывать метку времени в текст для отображения в Cassandra.

Это таблица для справки, в которой представлены все собственные типы данных, которые могут преобразовывать один тип данных в другой.

Давайте посмотрим,

Таблица: таблица преобразования CAST
В следующей таблице описаны преобразования, поддерживаемые функцией приведения. Cassandra будет молча игнорировать любое приведение, преобразующее тип данных в его собственный тип данных.

Из К
ascii текст, varchar
Bigint tinyint, smallint, int, float, double, decimal, varint, text, varchar
логический текст, varchar
прилавок tinyint, smallint, int, bigint, float, double, decimal, varint, text, varchar
Дата отметка времени
десятичный tinyint, smallint, int, bigint, float, double, varint, text, varchar
двойной tinyint, smallint, int, bigint, float, decimal, varint, text, varchar
плавать tinyint, smallint, int, bigint, double, decimal, varint, text, varchar
инет текст, varchar
int tinyint, smallint, bigint, float, double, decimal, varint, text, varchar
Smallint tinyint, int, bigint, float, double, decimal, varint, text, varchar
время текст, varchar
отметка времени дата, текст, varchar
timeuuid отметка времени, дата, текст, varchar
tinyint tinyint, smallint, int, bigint, float, double, decimal, varint, text, varchar
uuid текст, varchar
варинт tinyint, smallint, int, bigint, float, double, decimal, text, varchar

Источник - Cassandra.Apache.org

CQL-запрос для функции CAST:
Давайте возьмем пример: movies - это имя таблицы, в которой мы хотим изменить ее собственный тип данных, так что movie_date - это имя поля, которое имеет тип данных timestamp, и если мы хотим преобразовать его в другой собственный тип данных, такой как тип данных text.

Для создания таблицы использовался следующий CQL-запрос.

 СОЗДАТЬ ТАБЛИЧНЫЕ фильмы
 (
  movie_id int,
  метка времени movie_date,
  ПЕРВИЧНЫЙ КЛЮЧ (movie_id)
 );

Вставьте в таблицу следующие данные:

 movie_id: 7c3cffb8-0dc4-1d27-af24-c007b5fc5643
movie_date: 2019-10-15 01: 11: 50.000000 + 0000  

ВСТАВИТЬ фильмы (movie_id, movie_date) 
       ЗНАЧЕНИЯ (7c3cffb8-0dc4-1d27-af24-c007b5fc5643, 
                 '2019-10-15 01: 11: 50.000000 + 0000');

Итак, вот формат того, как мы можем преобразовать один тип данных в другой с помощью функции CAST. Приведенный ниже оператор означает, что мы собираемся преобразовать временную метку movie_date в текст movie_date.

 ВЫБЕРИТЕ КАСТ (дата_фильма КАК текст)
  • Результат: без CAST
     ВЫБЕРИТЕ movie_date
    ИЗ фильмов
    ГДЕ movie_id = 7c3cffb8-0dc4-1d27-af24-c007b5fc5643;

    Выход:

     2019-10-15 01: 11: 50.000000 + 0000 (формат отметки времени)
  • Результат: с CAST
     ВЫБЕРИТЕ КАСТ (дата_фильма КАК текст)
    ИЗ фильмов
    ГДЕ movie_id = 7c3cffb8-0dc4-1d27-af24-c007b5fc5643;

    Выход:

     2019-10-15 01: 11: 50.000Z (всемирное координированное время, или UTC)