Биты и байты.

Биты и байты.

четверг, 28 ноября 2013 г.

Как определить порт SSAS

Как определить порт SSAS ??

Если есть доступ на сервер открываем файл по адресу
%ProgramFiles%\Microsoft SQL Server\90\Shared\ASConfig\msmdredir.ini

Ищем там текст Port для нашего экземпляра

<Instances>
<Instance>
<Name>SQL2008R2</Name>
<Port>62037</Port>
</Instance>
</Instances>    

Проверяем с момощью SQL MANAGEMENT STUDIO


Если соединились значит все пучком…

Есть еще один способ  на пару шагов побольше

  1.       Открываем менеджер задач смотрим PID процесса  для msmdsrv.exe.
  2. <    Открываем командную строку вводим netstat /abo >>c:\output.txt .
  3.       Ищем соответствующий TCP IP:Port  для нашего PID
  4.       Проверяем в SQL MANAGEMENT STUDIO

среда, 27 ноября 2013 г.

Интеграция SQL Server с Active Directory

В современном мире без интеграции никуда((
Даже в ВТО пришлось интегрироваться за чем-то..
Бывают конечно удачные примеры

Но сейчас речь не об этом, допустим нужно нам добавить всех пользователей из Active Directory (полезная хрень которая содержит в себе всех пользователей и их настройки и политики)
к себе в базу SQL Server например…
Все оказывается делом 10 минут

Смотрим как называется наш домен
В командной строке Cmd, вводим systeminfo


Скачиваем себе Active Directory Explorer

вторник, 26 ноября 2013 г.

Не знаешь о чем поговорить с девушкой? SSAS вот твое решение!!

Не знаешь о чем поговорить с девушкой?


Срочно открывай книгу
Expert Cube Development with Microsoft SQL Server 2008 Analysis Services

Заценить, легко найти на трекерах и в сети.
Правильней же конечно будет купить)

Многомерные модели, MDX запросы различной степени тяжести, разделение прав доступа и еще много чего интересного..

среда, 13 ноября 2013 г.

Qlikview основы - Способы загрузки данных

Способы загрузки данных в QlikView

1    1.Loading data from the file.
Этот метод обычный метод загрузки данных в приложении QlikView.
Загрузка данных из файлов, таких как Excel, MSDB, CSV, TXT файлы и т.д., может быть сделано путем создания ODBC и подключения к базе данных напрямую.

ACCOUNTS:
LOAD ACCOUNT_CODE,
     
ACCOUNT_KEY,
     
ACCOUNT_CODE_NAME,
     
ACCOUNT_OWNR,
     
ACCOUNT_ORDR
FROM
[C:\Data\Finance_report_source data.xlsx]
(
ooxml, embedded labels, table is Account);

<    2.    Inline Load
Второй способ загрузки - встроенная загрузка, когда пользователь может определить свои собственные данные и загрузить в QlikView.
Встроенные данные могут быть определены через встроенный мастер данных.
EMPLOYEES
LOAD * INLINE [
    EMPLOYEE_KEY,EMPLOYEE_NAME
    1, Jack
    2, Bob
    3, Bill
]
;
<    3.    Resident Load
Загрузка данных из уже загруженной таблице QlikView можно с помощью загрузки с указанием внутренней таблицы.
Преобразования и расчеты могут быть выполнены в резидентном сценарии загрузки.
RATES:
LOAD Дата,
     
Единиц,
     
Курс
FROM
[http://cbr.ru/currency_base/dynamics.aspx?VAL_NM_RQ=R01235&date_req1=01.01.2013&r1=1&date_req2=12.11.2013&C_month=01&C_year=2013&rt=1&x=36&y=8&mode=1]
(
html, utf8, embedded labels, table is @41);

LOAD Дата,
     
Единиц,
     
Курс,
    
Единиц*Курс as 'Объем'
RESIDENT RATES;

Qlikview основы - QVD файлы

Возник естественный вопрос что это такое и как их создать?

 

QVD документ это файл созданный QlikView с понятной ему структурой, оптимизированный под загрузку данных

Как же создать этот чудо файл?

 

Нужна всего лишь одна команда в скрипте

Store RATES into RATES.qvd;

 

Qlikview основы - Объединение таблиц

Сегодня потребовалось объединить несколько таблиц непосредственно в QlikView, но вот засада есть две команды JOIN и  CONCATENATE
Пора раз и навсегда разобраться что и когда нужно использовать …..
JOIN – позволяет добавить новые столбцы в таблицу
CONCATENATE  - совместить данные из двух таблиц (аналог UNION SQL)
Есть еще интересный оператор KEEP (позволяет выровнять таблицы по количеству записей в зависимости от LEFT RIGHT INNER)


Как работает CONCATENATE 
Если напрямую загрузить две таблицы например сотрудников двух компаний то если открыть модель можно увидеть что они связаны
через вспомогательную таблицу $Syn 1

 

И наша схема выглядит так..
что по мере разрастания количества таблиц  будет напоминать большую кашу, дабы все это привести в человеческий вид воспользуемся CONCATENATE 
1..Неявное связывание (QlikView должен был автоматически сам связать эти таблицы по одинаковым полям, но так как количество полей в таблицах не совпадает связать не получилось )
Как выход добавить еще одно поле Department в таблицу Stamford Employees и таблицы свяжутся сами автоматически
2..Можно отменить неявное связывание если указать ключевое слово перед таблицей NOCONCATENATE 


3.. Явное связывание (определенно лучше чем неявное, есть возможность связать таблицы с разным набором полей)
Указываем секретное слово  CONCATENATE в скобочках пишем таблицу в которую сливаем данные


Qlikview основы - Изменить таблицу в отчете без обновления

Недавно понадобилось удалить лишние данные из  отчета для презентации,
А так как источника не было под рукой, понятно что обновления делать нельзя было..
Выход очень простой, нас всегда спасет частичная загрузка!!

1.Копируем этот скрипт в наш документ, обязательно должны быть слова ADD NOCONCATENATE для частичной загрузки
2.Меняем  названия таблиц  на ваши таблицы
SALES – исходная таблица
SALES_TEMP – временная таблица
3.Запускаем частичную загрузку и видим что, лишние удалились благополучно!

/* Example loadscript fragment to adjust a table */
/* Put this code at the top of the loadscript and */
/* then run a Partial Reload. */
/* Remove this fragment after using it. */

//Rename the table we want to change
RENAME TABLE SALES TO SALES_TEMP;

//Rebuild table with a WHERE clause
SALES:
ADD NOCONCATENATE LOAD * RESIDENT SALES_TEMP
WHERE Data >'01.11.2013';

// Drop the original table
DROP TABLE SALES_TEMP;

//so that we don't fall into the regular loadscript
EXIT SCRIPT;



И немного сладенького на десерт….

Qlikview основы - Экспорт данных

Допустим понабилось нам например данные из Qlikview выгрузить в другую систему, как это сделать?
Как два пальца….
1..Берем наш документ, создаем его копию в отдельной папке, чтобы не затронуть основной документ.
2..Копируем этот скрипт в начало документа, весь смысл скрипта, привязываем  экспорт к частичной загрузке

/* Export all QlikView tables to tab-delimited files */
if IsPartialReload() then
for ix= 0 to 100
let tn=trim(tablename($(ix)));
if len('$(tn)')<1 then
exit script;
end if
Store "$(tn)" into "EXPORTED_QV_$(tn).TXT" (txt, delimiter is "\t");
next ix
end if
exit script;

Должно получиться что-то вроде этого


Сохраняем, и в меню Файл – выбираем частичная загрузка и файлы готовы в нашей папке EXPORTED_QV_@41.TXT


+ немного улыбок

Плюшки QlikView (Эпизод 2) - Комментарии и совместные сессии

1.. Это обмен комментариями и снимками отчетов (они же Snapshots), можно легко сравнить две различные версии отчета практически на лету и поболтать с коллегой в заметках!
До социальной сети конечно не дотягивает, но адски удобно))
2.. Поделись сессией с другом (не той конечно же что в институте),  копируем ссылку и отправляем ее другу в течении 15 мин  вы сможете вместе управлять одной и той же версией отчета и видеть действия друг друга,
И самое главное за это не надо платить…..))
Главное включить опцию совместных сессий в management console.

Юзабилити QlikView просто зашкаливает) Надеюсь в 12 версии будут еще более приятные плюшки….


Как включить Session Collaboration


И как всегда в конце веселье…

вторник, 12 ноября 2013 г.

Плюшки QlikView (Эпизод 1) - Загрузка с веб страниц

Понадобилось случайно вдруг в отчет курсы валют подтянуть, оказалось совсем просто с QlikView, буквально пару кликов и данные уже в отчете.
Раньше приходилось писать небольшие парсеры для ETL, а тут уже все встроено, мелочь а приятно))
Было бы шикарно на случай если структура страницы изменится, выбрать по названию таблицу или по свойству атрибута.


Открываем отчет и анализируем до потери пульса……


И напоследок немного юмора….

Знакомство с QlikView (часть 1)


Знакомство с  QlikView
С первого взгляда, имеет типичную архитектуру, вся суета крутится вокруг qvw документов, они же будущие отчеты и аналитические панели в итоге,

Qlikview документ хранит ваши данные внутри своих документов в 2х уровнях: список уникальных значений, и связи между этими значениями-указатели.

С помощью настроенных скриптов для импорта данных из источников, документ импортирует данные к себе во внутреннюю структуру и затем уже вертит и крутит их  в оперативной памяти .
Разработчик в толстом клиенте (так называемый qlikview desktop edition) разрабатывает у себя этот документ,
затем копирует этот документ в специальный каталог на сервере и отчет становится доступным обычным пользователям через web браузер.


понедельник, 11 ноября 2013 г.

QlikView Cheat Sheet

Офигенная штука – QlikView ЧИТ ШИТ)
Для тех кто рубит по английски…

Qlikview v10 set analysis identifiers
0
Empty set
1
Full set of all the records
$
Current selection
$1
Previous selection
$_1
Forward selection
Bookmark01
Bookmark ID or name
Qlikview v10 set analysis operators
+
Union
-
Exclusion (first but not the other)
*
Inters­ection (both)
/
Symmetric difference (either but not both)
Qlikview v10 set analysis modifiers
<Or­derDate = Delive­ryD­ate>
Select only data where field1 = field2
<Field = {value­}>
Select specific value
<Region = >
Ignore the specific field
<Ye­ar=­{2000}, Region = {"U*­"­}>
Two fields can be filtered, with wildcards
Qlikview v10 set analysis examples
sum(sales) orsum({$} sales)
sales in current selection
sum({1} sales})or sum({1} Total sales})
sales disreg­arding the selection or disreg­arding selection and dimension
sum({$­<Or­derDate = Delive­ryD­ate­>} sales)
sales in current selection for a specific date
sum({1­<Region = {US}>} sales)
total sales for region=US
sum({<­Region = >} sales)
sales in selection with region removed (idem $)
sum({$­<Ye­ar=­{2000}, Region = {"U*­"­}>} sales)
current selection but year forced to 2000 and region like U*
sum({$­<Year = {$(vLa­stY­ear­)}>} sales)
sales related to a variable
p({<Ye­ar=­{$(­=ma­x(Y­ear­)-1­)}>} customer)
returns customers who are possible for last year
e({<Ye­ar=­{$(­=ma­x(Y­ear­)-1­)}>} customer)
returns customers who are excluded for last year

заценить все

среда, 6 ноября 2013 г.

идентификатор безопасности пользователя SID

 

      Как узнать свой SID?

Оказывается все очень просто:

1.Открываем командную строку.
2.Вводим очень хитрую команду
               wmic useraccount get name,sid
жмем что есть мочи Enter
3.Получаем результаты
P/S: Также можно найти SID в реестре:
Открываем ветку  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList key.
По переменной ProfileImagePath можно определить к какому профилю привязан идентификатор
например, ProfileImagePath для S-1-5-21-1180699209-877415012-3182924384-1004 ключа ссылается на C:\Users\Tim отсюда делаем вывод что  "Tim" это  "S-1-5-21-1180699209-877415012-3182924384-1004".
Еще один вариант
Поскольку все больше и больше людей применяют различные технологии виртуализации физических компьютеров и серверов, все чаще они начинают сталкиваться с проблемами наличия  двух (или более) одинаковых SID в сети.
В старых версиях ОС Windows для изменения SID можно было воспользоваться утилитой NewSid, однако она более официально не поддерживается Microsoft.  Microsoft  рекомендует для изменения SID вашей операционной системы пользоваться утилитой  sysprep.
Про использование sysprep мы поговорим в следующих постах, а сегодня хочу поделиться информацией о том, как же можно узнать свой SID. Для этих целей я предпочитаю использовать бесплатную утилиту от Sysinternals, которая называется PsGetSid .
Первым делом, естественно, мы должны скачать PsGetSid. После чего извлеките эту утилиту (PsGetSid.exe) из архива PsTools.

пятница, 1 ноября 2013 г.

Как вкусно приготовить на QlikView

Как вкусно приготовить на QlikView, Стивен Редмонд
Как из обычного пользователя переквалифицироваться в гуру)) 

Пока доступно качаем по ссылке

Влом качать?) зацени у гугла

Еще одна полезная книга
QlikView 11 справочное руководство


ODBC для WIN 64

Если после установки MS OFFICE или Microsoft Access Database Engine 2010 Redistributable
Все равно не видны провайдеры для создания ODBC
Значит не там смотрите))
Нужно открыть odbcad32.exe по адресу c:\windows\sysWOW64\odbcad32.exe


И будет все пики чики)



Скрытые таблицы Access

При настройке импорта из Access через ODBC можно столкнуться с такой ошибкой
отсутствует разрешение на чтение данных для MSysAccessObjects

что в общем немного обламывает, данные то нужно по любому достать)
Выход есть, всего то надо дать права админу на эти таблицы в Access


Ставим отображать скрытые и системные объекты

Даем права Admin на все служебные таблицы, идем опять в сервис-защита-разрешения

About