Функция CAST в Cassandra
Функция 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)