Работа с расширенными и сложными типами данных интерфейса Big SQL

Обработка больших объемов данных в распределенных файловых системах (HDFS и GPFS)

Big SQL — SQL-интерфейс, разработанный для платформы InfoSphere® BigInsights™— предлагает несколько полезных расширенных типов данных. В общем случае тип данных определяет набор свойств для представляемых значений; а эти свойства определяют, как обрабатываются эти значения. Big SQL поддерживает широкий набор типов данных, в том числе расширенные типы данных, которые не поддерживает система Apache Hive. Типы данных, поддерживаемые Big SQL, упрощают представление и обработку полуструктурированных данных. С помощью включенных в статью примеров кода и запросов вы изучите, как использовать типы данных Big SQL в простой и во вложенной формах, а также как создавать эти типы и реализовать их в приложении. В качестве дополнительного бонуса вы увидите, как использовать специальные SerDe (Serializer-Deserializer)-блоки для работы с JSON-данными.

Неха Томар, разработчик программного обеспечения, IBM

Неха Томар (Neha Tomar) — разработчик программного обеспечения в группе по Big SQL при лаборатории IBM Software Laboratory (Индия). До этого она более двух лет работала в составе группы DB2 Install QA. Н. Томар имеет ученую степень магистра, полученную в Индийском технологическом институте (г. Аллахабад, Индия). Ее опыт работы с технологиями баз данных превышает четыре года.



04.03.2014

Введение в Big SQL

InfoSphere BigInsights Quick Start Edition

InfoSphere BigInsights Quick Start Edition — это доступная для загрузки бесплатная версия платформы IBM InfoSphere BigInsights на базе Hadoop. Эта версия позволяет ознакомиться со всеми возможностями (такими как Big SQL, текстовый анализ и BigSheets), которые корпорация IBM разработала для расширения функциональности проекта с открытым кодом Hadoop. Извлечь максимальную пользу от работы с Hadoop вам помогут специальные обучающие материалы, в том числе пошаговые руководства для самостоятельной подготовки и видеоуроки. Вы сможете работать с большими объемами данных без ограничений по времени или объему.Смотрите видеоматериалы, изучайте руководства (в формате PDF) и загрузите BigInsights Quick Start Edition прямо сейчас.

Big SQL — это новый SQL-интерфейс для платформы InfoSphere BigInsights, который обеспечивает SQL-доступ к данным, хранимым с помощью HDFS и Apache HBase. Он предоставляет возможности для создания и заполнения таблиц в распределенных средах и для извлечения информации из распределенных данных посредством SQL-запросов. Big SQL поддерживает несколько типов данных.

Простые типы данных

  • Tinyint
  • Smallint
  • Int или Integer
  • Bigint
  • Float или Real
  • Double
  • Decimal(precision, scale) или Numeric(precision, scale)
  • String
  • Varchar(length) или Char(length)
  • Boolean
  • Timestamp
  • Binary(length)

Сложные типы данных

  • array
  • struct

Расширенные типы данных Big SQL

Помимо простых и сложных типов данных, Big SQL поддерживает расширенные типы данных, которые недоступны при использовании Apache Hive. Эти расширенные типы данных рассматриваются в следующих разделах.

Тип данных decimal или numeric

TЭтот тип данных используется для представления десятичных значений с двумя параметрами — precision (точность) и scale (масштаб). Значения, хранящиеся в файлах данных, усекаются в соответствии с заданными для них параметрами precision и scale. В Apache Hive эти значения обычно сохраняются с использованием типа данных string. В тех случаях, когда необходимо ограничить точность и масштаб какого-либо значения, используйте вместо этого тип данных decimal/numeric.

Синтаксис:decimal(precision, scale)

В следующем примере показан столбец DISCOUNT типа decimal(10,4), где 10 — это точность, а 4 — это масштаб.

Создание таблицы с типом данных decimal

		[localhost][biadmin] 1> create table PRODUCT (PROD_ID int, DISCOUNT decimal(10,4))
[localhost][biadmin] 2> row format delimited
[localhost][biadmin] 3> fields terminated by ',';
0 rows affected (total: 0.20s)

Тип данных real

Тип данных real аналогичен типу данных float; он предназначен для представления значений одинарной точности в формате с плавающей запятой. Поведение аналогично поведению типа данных float.

Синтаксис:real

Создание таблицы с типом данных real

		[localhost][biadmin] 1> create table PRODUCT(PROD_ID int, DISCOUNT real)
[localhost][biadmin] 2> row format delimited
[localhost][biadmin] 3> fields terminated by ',';
0 rows affected (total: 0.26s)

Тип данных varchar/char

Этот тип данных используется для представления символьных строк переменной длины. Значения, хранящиеся в файлах данных, усекаются в соответствии с заданной длиной. В Apache Hive для представления таких значений применяется тип string. Когда вам необходимо ограничить длину контента, используйте вместо string тип данных varchar/char, поскольку он позволяет задавать предельный размер для значений столбца.

Синтаксис:varchar(length) или char(length)

Создание таблицы с типом данных varchar

		[localhost][biadmin] 1> create table product(prod_id int, prod_name varchar(15))
[localhost][biadmin] 2> row format delimited
[localhost][biadmin] 3> fields terminated by ',';
0 rows affected (total: 0.12s)

Сложные типы данных Big SQL

Big SQL поддерживает сложные типы данных array и struct. Эти типы полезны при представлении данных со сложной структурой. Эти типы данных не описываются в информационном центре InfoSphere BigInsights 2.1, однако я включила их в эту статью, чтобы вы получили представление о сложных типах данных, поддерживаемых в Big SQL.

  • Тип данных array используется с целью определения структуры данных для гомогенных объектов. В Big SQL тип данных array может использоваться в простых и во вложенных формах. Обращение к элементам столбцов типа array может осуществляться с использованием индекса — например, phone[1],— который начинается с 1 (согласно стандартам SQL).
  • Тип данных struct— это встроенный тип данных Big SQL; он содержит последовательность атрибутов, каждый из которых может иметь простой, сложный или вложенный тип данных. В платформе InfoSphere BigInsights 2.1 интерфейс Big SQL поддерживает тип данных struct в качестве типа для столбца в таблице или в качестве подтипа для столбца типа array. Обращение к элементам столбца типа struct может осуществляться с использованием точечного обозначения (.) — например, address.city.

Понимание сложных типов данных в Big SQL

Рассмотрим подробный пример для более глубокого изучения сложных типов данных Big SQL. Для работы с Big SQL нам необходимо сконфигурировать и запустить сервер Big SQL (является компонентом платформы InfoSphere BigInsights). Подробные сведения по установке и конфигурированию сервера Big SQL содержатся в информационном центре InfoSphere BigInsights 2.1 (см. раздел Ресурсы). После установки и конфигурирования сервера Big SQL его можно запустить с помощью утилиты bigsql из каталога $BIGSQL_HOME/bin.

Запуск сервера Big SQL

		biadmin@bdvm177:~> cd $BIGSQL_HOME/bin
biadmin@bdvm177:/opt/ibm/biginsights/bigsql/bin> ./bigsql start
BigSQL running, pid 18598.

Подключитесь к серверу Big SQL с помощью клиентского инструмента командной строки JSqsh, который устанавливается вместе с этим сервером. Инструмент JSqsh — это обычный JDBC-клиент, допускающий использование с любым источником данных, для которого имеется JDBC-драйвер. Скрипт jsqsh находится в каталоге $BIGSQL_HOME/bin. Дополнительные сведения можно получить в информационном центре InfoSphere BigInsights 2.1 (см. раздел Ресурсы).

Подключение к серверу Big SQL с помощью JDBC-клиента jsqsh

biadmin@bdvm177:/opt/ibm/biginsights/bigsql/bin> ./jsqsh -Ubiadmin -Ppassw0rd -dbigsql
Current schema context is 'default'
JSqsh Release 1.5-ibm, Copyright (C) 2007-2013, Scott C. Gray
Type \help for available help topics. Using JLine.
[localhost][biadmin] 1>

Таблицы со столбцами, имеющими сложные типы данных

В качестве примера представим себе корзину для покупок на онлайновом портале www.xyzshopping.com. Создайте базу данных под именем SHOPPING с двумя таблицами: CUSTOMER_DETAILS, которая содержит сведения о клиентах, имеющих учетную запись на нашем портале; и ORDER_DETAILS, которая содержит информацию о заказах, размещенных клиентами. Структуры этих таблиц представлены в таблице 1 и в таблице 2.

Структура таблицы CUSTOMER_DETAILS
Имя столбцаТип данных столбца
CUSTOMER_IDvarchar(15)
FIRST_NAMEvarchar(15)
LAST_NAMEvarchar(20)
ADDRESSstruct<LINE1:varchar(15), LINE2: varchar(15), POSTAL_CODE:integer, CITY: varchar(20), STATE: varchar(20), COUNTRY: varchar (20), EMAILID: varchar(25)>
CONTACT_NUMBERarray<integer>

Big SQL поддерживает также вложение типов данных array и struct. Таблица ORDER_DETAILS состоит из пяти столбцов, при этом столбец ITEMS является вложенным. Он имеет данные типа struct, вложенные в данные типа array.

Структура таблицы ORDER_DETAILS
Имя столбцаТип данных столбца
ORDER_IDvarchar(15)
SHIPPING_ADDRESSstruct<LINE1: varchar (15), LINE2: varchar (15), POSTAL_CODE: integer, CITY: varchar (20), STATE: varchar (20), COUNTRY: varchar (20), EMAILID: varchar (25), CONTACT_NUMBER: integer>
ITEMSarray<struct<ITEM_ID: varchar(20), QUANTITY:integer, PRICE:integer>>
ORDER_DATEtimestamp
CUSTOMER_IDvarchar(15)

Создание таблиц CUSTOMER_DETAILS и ORDER_DETAILS с использованием Big SQL

Интерфейс Big SQL предоставляет команду create table, позволяющую создать таблицу для нижележащего механизма хранения данных — HDFS или Apache HBase. В этом примере в качестве обеспечивающего хранилища использовались HDFS-файлы. Разделители полей (столбцы в таблице) и коллекций (определяемых сложными типами данных) можно специфицировать при создании таблицы с помощью команды create table. По умолчанию в качестве управляющих символов используются коды управления ASCII (которым обычно предшествует символ "^" — например, ^A,^B), которые играют роль разделителей для значений данных в тех случаях, когда только первые три значения могут быть перезаписаны другими символами. Символ Control A (^A) — это разделитель по умолчанию для полей, а символ Control B (^B) — это разделитель по умолчанию для коллекций (сложных типов) array и struct. В случае вложенных типов данных символ разделителя определяется уровнем вложения.

Создание баз данных и таблиц

		[localhost][biadmin] 1> create database SHOPPING;
0 rows affected (total: 0.60s)
[localhost][biadmin] 1> use SHOPPING;
ok. (total: 0.37s)

[localhost][biadmin] 1> create table CUSTOMER_DETAILS
[localhost][biadmin] 2> (
[localhost][biadmin] 3> CUSTOMER_ID varchar(15),
[localhost][biadmin] 4> FIRST_NAME varchar(15),
[localhost][biadmin] 5> LAST_NAME varchar(20),
[localhost][biadmin] 6> ADDRESS struct<
[localhost][biadmin] 7>    LINE1:varchar(15), 
[localhost][biadmin] 8>    LINE2:varchar(15), 
[localhost][biadmin] 9>    POSTAL_CODE:integer, 
[localhost][biadmin] 10>   CITY:varchar(20), 
[localhost][biadmin] 11>   STATE:varchar(20), 
[localhost][biadmin] 12>   COUNTRY:varchar(20), 
[localhost][biadmin] 13>   EMAILID:varchar(25)>,
[localhost][biadmin] 14> CONTACT_NUMBER array<integer>
[localhost][biadmin] 15> )
[localhost][biadmin] 16> row format delimited
[localhost][biadmin] 17> fields terminated by ','
[localhost][biadmin] 18> collection items terminated by '|'
[localhost][biadmin] 19> lines terminated by '\n'
[localhost][biadmin] 20> ;
0 rows affected (total: 0.82s)

[localhost][biadmin] 1> create table ORDER_DETAILS
[localhost][biadmin] 2> (
[localhost][biadmin] 3> ORDER_ID varchar(15),
[localhost][biadmin] 4> SHIPPING_ADDRESS struct<
[localhost][biadmin] 5>    LINE1:varchar(15), 
[localhost][biadmin] 6>    LINE2:varchar(15), 
[localhost][biadmin] 7>    POSTAL_CODE:integer, 
[localhost][biadmin] 8>    CITY:varchar(20), 
[localhost][biadmin] 9>    STATE:varchar(20),
[localhost][biadmin] 10>   COUNTRY:varchar(20), 
[localhost][biadmin] 11>   EMAILID:varchar(25), 
[localhost][biadmin] 12>   CONTACT_NUMBER:integer>,
[localhost][biadmin] 13> ITEMS array<
[localhost][biadmin] 14>   struct<
[localhost][biadmin] 15>       ITEM_ID:varchar(20), 
[localhost][biadmin] 16>	QUANTITY:integer, 
[localhost][biadmin] 17>	PRICE:integer>>,
[localhost][biadmin] 18> ORDER_DATE timestamp,
[localhost][biadmin] 19> CUSTOMER_ID varchar(15)
[localhost][biadmin] 20> )
[localhost][biadmin] 21> row format delimited
[localhost][biadmin] 22> fields terminated by ','
[localhost][biadmin] 23> collection items terminated by '|'
[localhost][biadmin] 24> lines terminated by '\n'
[localhost][biadmin] 25> ;
0 rows affected (total: 2.79s)

Теперь, после создания двух таблиц (CUSTOMER_DETAILS и ORDER_DETAILS в базе данных SHOPPING), мы готовы загрузить в эти таблицы данные.

Перечисление таблиц, содержащихся в базе данных SHOPPING

		[localhost][biadmin] 1> \show tables -s SHOPPING -e
+-----------+-------------+------------------+------------+
| TABLE_CAT | TABLE_SCHEM | TABLE_NAME       | TABLE_TYPE |
+-----------+-------------+------------------+------------+
| [NULL]    | shopping    | customer_details | TABLE      |
| [NULL]    | shopping    | order_details    | TABLE      |
+-----------+-------------+------------------+------------+

Заполнение таблиц со столбцом типа данных struct

Big SQL использует утилиту load, которая подобна соответствующей утилите Apache Hive для заполнения таблиц. Утилита load не выполняет никаких преобразований загружаемых данных; файлы данных лишь копируются и перемещаются в соответствующие таблицы. Дополнительные сведения о синтаксисе можно получить в информационном центре InfoSphere BigInsights (см. раздел Ресурсы).

При создании таблицы в нашем примере в качестве разделителей коллекций и полей использовались символы "|" и ", " соответственно. Вследствие этого значения разных полей таблицы должны быть разделены запятыми; если у таблицы имеются какие-либо столбцы с данными сложного типа (array или struct), то элементы коллекций должны быть разделены символом "|". В данном примере значение для столбца CUSTOMER_DETAILS.ADDRESS типа STRUCT может быть задано следующим образом (символ "|" разделяет различные атрибуты STRUCT):

CMH Road|Indira Nagar|560008|Bangalore|Karnataka|India|neha@in.ibm.com

Пример строки для таблицы CUSTOMER_DETAILS

		CUST001,Neha,Tomar,CMH Road|Indira Nagar|560008|Bangalore|Karnataka|India
|neha@in.ibm.com,998891234

Теперь эта таблица может быть заполнена с помощью утилиты load.

Заполнение таблицы CUSTOMER_DETAILS

		[localhost][biadmin] 1> load hive data local inpath 
[localhost][biadmin] 2> '/home/neha/test_data/shopping/CUSTOMER_DETAILS.dat' 
[localhost][biadmin] 3> overwrite into table CUSTOMER_DETAILS;
ok. (total: 5.54s)

[localhost][biadmin] 1> select * from CUSTOMER_DETAILS;
+------------+------------+-----------+--------------------+----------------------------+
| customer_i | first_name | last_name | address            | contact_number             |
| d          |            |           |                    |                            |
+------------+------------+-----------+--------------------+----------------------------+
| CUST001    | Neha       | Tomar     | {CMH Road,.......} | [998891234, 998000000]     |
| CUST002    | Mrudula    | Madiraju  | {HSR Layout,.... } | [988881212, 804448008]     |
| CUST003    | Madhavi    | Shankar   | {Shanthi Colony,..}| [977777777]                |
| CUST004    | Ravindra   | Bajpai    | {80 Ft Road,...}   | [988822222, 922221111..}   |
+------------+------------+-----------+--------------------+----------------------------+
4 rows in results(first row: 0.11s; total: 0.12s)

Таблица ORDER_DETAILS содержит вложенный столбец ITEMS, у которого в столбце типа array задан тип данных struct. Поля этой таблицы разграничены запятыми, а поля коллекций разделяются символами "|". Чтобы обособить struct-атрибуты ITEM_ID, QUANTITY, PRICE, используйте символ Control C (^C) в качестве разделителя третьего уровня для данных таблицы.

Пример строки для таблицы ORDER_DETAILS

		ORD001,CMH Road|Indira Nagar|560008|Bangalore|Karnataka|India|neha@in.ibm.com
|998000000,ITEM001^C2^C110|ITEM010^C4^C500,2013-07-29 15:35:40.356700,CUST002

Эта таблица может быть заполнена с помощью утилиты load.

Заполнение таблицы ORDER_DETAILS

		[localhost][biadmin] 1> load hive data local inpath 
[localhost][biadmin] 2> '/home/neha/test_data/shopping/ORDER_DETAILS.dat' 
[localhost][biadmin] 3> overwrite into table ORDER_DETAILS;
ok. (total: 4.97s)

[localhost][biadmin] 1> select * from ORDER_DETAILS;
+----------+-----------------+---------------------+------------------------+------------+
| order_id | shipping_address| items               | order_date             | customer_id|
|          |                 |                     |                        |            |
+----------+-----------------+---------------------+------------------------+------------|
| ORD001   | {CMH Road....}  | [{ITEM001, 2, ..}..]| 2013-07-29 15:35:40.356| CUST002    |
| ORD002   | {80 Ft Road...} | [{ITEM111, 1, ..}..]| 2013-08-01 11:10:00.004| CUST001    |
+----------+-----------------+---------------------+------------------------+------------+
2 rows in results(first row: 8.27s; total: 8.28s)

Примеры запросов

Используйте эти примеры с целью создания запросов применительно к своей ситуации.

Запрос для извлечения ORDER_ID и CITY из SHIPPING

		[localhost][biadmin] 1> select ORDER_ID, SHIPPING_ADDRESS.CITY as SHIPPING_CITY 
[localhost][biadmin] 2> from ORDER_DETAILS;
+----------+---------------+
| order_id | SHIPPING_CITY |
+----------+---------------+
| ORD001   | Bangalore     |
| ORD002   | Bangalore     |
+----------+---------------+
2 rows in results(first row: 0.30s; total: 0.31s)

Запрос для извлечения CUSTOMER_ID и первого элемента CONTACT_NUMBER

		[localhost][biadmin] 1> select CUSTOMER_ID,CONTACT_NUMBER[1] as CONTACT_NUMBER 
[localhost][biadmin] 2> from CUSTOMER_DETAILS;
+-------------+----------------+
| customer_id | CONTACT_NUMBER |
+-------------+----------------+
| CUST001     |      998891234 |
| CUST002     |      988881212 |
| CUST003     |      977777777 |
| CUST004     |      988822222 |
+-------------+----------------+
4 rows in results(first row: 0.8s; total: 0.8s)

Примечание:В версии InfoSphere BigInsights 2.1 не поддерживаются вложенные struct-конструкции (struct внутри struct). Кроме того, не поддерживается извлечение конкретного элемента array, находящегося внутри столбца типа struct (вложенного).


Работа с SerDe-блоком для сложных типов данных в формате JSON

Подобно Apache Hive, интерфейс Big SQL поддерживает использование специальных SerDe-блоков для обращения с различными форматами данных. Чтобы задействовать специальные SerDe-блоки при создании таблиц, используйте конструкцию ROW FORMAT SERDE 'serde.class.name' команды create table. Чтобы упростить представление сложных структур данных, можно применить формат JSON, поскольку соглашения для JSON-данных подобны соответствующим соглашениям для языков программирования. Использование формата JSON для данных имеет и ряд других преимуществ, в том числе малое потребление ресурсов и упрощение разбора.

Обратите внимание, что пользователь может описать специальный SerDe-блок согласно своим конкретным требованиям — посредством реализации интерфейса Apache Hive для SerDe "org.apache.hadoop.hive.serde2.SerDe".Для работы с Big SQL необходимо включить специальный Java-класс SerDe в classpath интерфейса Big SQL. Для получения дополнительной информации обратитесь в информационный центр InfoSphere BigInsights (см. раздел Ресурсы).

С целью демонстрации использования SerDe-блока с форматом JSON мы создадим для нашего сценария с корзиной для покупок таблицу WISHLIST, которая будет содержать столбец CUSTOMER_ID и array-столбец ITEM_ID для хранения списка элементов, которые клиент хочет иметь в своем перечне пожеланий (wishlist). Обратитесь в раздел Ресурсы, чтобы загрузить используемый в нашем примере SerDe-блок с сайта GitHub.

Структура таблицы WISHLIST
Имя столбцаТип данных столбца
CUSTOMER_IDvarchar(15)
ITEMS_LISTarray<varchar(15)>

Создание таблицы WISHLIST с использованием Big SQL

		[localhost][biadmin] 1> create table WISHLIST
[localhost][biadmin] 2> (
[localhost][biadmin] 3> CUSTOMER_ID varchar(15),
[localhost][biadmin] 4> ITEM_LIST array<varchar(15)>
[localhost][biadmin] 5> )
[localhost][biadmin] 6> row format serde 'org.openx.data.jsonserde.JsonSerDe'
[localhost][biadmin] 7> stored as textfile;
0 rows affected (total: 2.86s)

Пример строки для таблицы WISHLIST в формате JSON

		  {"CUSTOMER_ID":"CUST001","ITEM_LIST":["ITEM001","ITEM008"]}

Заполнение таблицы данными в формате JSON

		[localhost][biadmin] 1> load hive data local inpath 
[localhost][biadmin] 2> '/home/neha/test_data/shopping/wishlist.json' 
[localhost][biadmin] 3> overwrite into table WISHLIST;
ok. (total: 15.5s)

Примеры запросов

Используйте эти примеры при создании своих собственных запросов.

Запросы для извлечения данных из таблицы WISHLIST

		[localhost][biadmin] 1> select * from WISHLIST;
+-------------+-----------------------------+
| customer_id | item_list                   |
+-------------+-----------------------------+
| CUST001     | [ITEM001, ITEM008]          |
| CUST008     | [ITEM022, ITEM089, ITEM005] |
+-------------+-----------------------------+
2 rows in results(first row: 8.27s; total: 8.28s)

[localhost][biadmin] 1> select CUSTOMER_ID,ITEM_LIST[1] as FIRST_ITEM from WISHLIST;
+-------------+--------------+
| customer_id | FIRST_ITEM   |
+-------------+--------------+
| CUST001     | ITEM001      |
| CUST008     | ITEM022      |
+-------------+--------------+
2 rows in results(first row: 8.19s; total: 8.19s)

Заключение

Интерфейс Big SQL продукта InfoSphere BigInsights позволяет обрабатывать большие объемы данных, хранящиеся в распределенной файловой системе, такой как HDFS или GPFS, с использованием расширенных типов данных. Воспользуйтесь представленными в этой статье примерами кода и запросов при практическом применении типов данных Big SQL в интересах своих данных.


Загрузка

ОписаниеИмяРазмер
Пример программного кодаComplexDataTypeQueries.zip2 КБ

Ресурсы

Научиться

Получить продукты и технологии

  • Загрузите продукт InfoSphere BigInsights Quick Start Edition(InfoSphere BigInsights Quick Start Edition или воспользуйтесь его VMware-образом. Это доступная для загрузки бесплатная версия платформы IBM InfoSphere BigInsights на базе Hadoop, позволяющая ознакомиться со всеми возможностями, которые корпорация IBM разработала для расширения функциональности проекта с открытым кодом Hadoop — такими как Big SQL, текстовый анализ и BigSheets.
  • Загрузите продукт InfoSphere BigInsights Quick Start Edition, который поставляется в виде нативного установочного пакета программного обеспечения или VMware-образа.
  • Загрузите продукт InfoSphere Streams, который поставляется в виде нативного установочного пакета программного обеспечения или VMware-образа.
  • Оцените продукт InfoSphere Streams на платформе IBM SmartCloud Enterprise..
  • Используйте в своем следующем проекте по разработке ознакомительное программное обеспечение IBM, которое можно загрузить непосредственно с сайта developerWorks.

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Information Management
ArticleID=964736
ArticleTitle=Работа с расширенными и сложными типами данных интерфейса Big SQL
publish-date=03042014