Страницы

16 июля 2015 г.

Выбор языка программирования? Не, не слышал :)

Навеяло статьей

Переходим с Delphi на C# (беглый взгляд + мысли вслух)


Спустя время (обретя опыт и мудрость :) ) возвращаясь к теме "На какой язык лучше соскочить?".

Вопрос в корне не правильный!

       Не задачи должны подбираться под язык программирования, а язык программирования под задачу.
       Если вы кодите на Delphi и хотите слезть, не нужно этого делать - нужно обязательно освоить C# и Java, Python, но при этом не бросать Delphi.
       Владеть одним языком и надеяться, что его хватит для всех потребностей - это ошибка. Это все равно, что в совершенстве овладеть только отверткой и верить что забить ей гвоздь - не проблема при правильном подходе. Гвозди должны забиваться молотком, экономьте свое время. Задача должна определять выбор инструмента....
       Овладейте python. На нем можно быстро писать прототипы и рабочие версии приложений.
Овладейте SQL. Сейчас базы данных везде! И реляционная модель еще долго будет радовать нас своим присутствием (на случай комментария по поводу NoSQL).

Владеть только отверткой - это ошибка.

Teradata. Несколько способов получить номер недели в году. (get week number)

Заморочился этим вопросом, накопал несколько вариантов:


-- week number
SELECT TD_SYSFNLIB.WEEKNUMBER_OF_YEAR (DATE'2015-06-06');

-- week number ISO
SELECT TD_SYSFNLIB.WEEKNUMBER_OF_YEAR (DATE'2015-06-06', 'ISO')

-- week number for Teradata 14
SELECT TO_CHAR(DATE'2015-06-06', 'iyyyiw')

-- week number custom.
SELECT ((DATE'2015-06-06' - ((EXTRACT(YEAR FROM DATE'2015-06-06') - 1900) * 10000 + 0101 (DATE))) - 
       ((DATE'2015-06-06' - DATE '0001-01-07') MOD 7)  + 13) / 7

Генерация Data Vault из Stage. Заметка.

Для прагматиков: в этой статье нет никакой практической пользы, просто пометка. Можно не читать. :)

Генерация схемы Data Vault 1.0 из Stage таблицы. Краткий алгоритм, типичный случай.

Практически всегда есть один Source из которого генерируется несколько целевых Data Vault таблиц.
Алгоритм построения таблиц Data Vault следующий:
1. Определяем бизнес ключи для создания хабов (бизнес ключами обычно становятся айдишники сущности на базе - источнике).
2. Для каждого бизнес-ключа определяем поля которые пойдут в хаб-сателлит (речь идет о полях которые являются описанием бизнес-ключа, предающим ему логический смысл. Без этих полей, для человека, бизнес-ключ просто бессмысленное число или набор символов).
3. Создание линков: На предыдущих шагах определили хабы, теперь их можно линковать. На основе ключей хабов генерируем линки между ними (+линк-сателлит). Таким образом связываем сущности.

TODO: Автоматизация получения DV из Stage.