{
    "version": "https:\/\/jsonfeed.org\/version\/1",
    "title": "Блог об аналитике, визуализации данных, data science и BI, заметки с тегом: bi",
    "home_page_url": "http:\/\/test.leftjoin.ru\/tags\/bi\/",
    "feed_url": "http:\/\/test.leftjoin.ru\/tags\/bi\/json\/",
    "icon": "http:\/\/test.leftjoin.ru\/user\/userpic@2x.jpg",
    "author": {
        "name": "Николай Валиотти",
        "url": "http:\/\/test.leftjoin.ru\/",
        "avatar": "http:\/\/test.leftjoin.ru\/user\/userpic@2x.jpg"
    },
    "items": [
        {
            "id": "134",
            "url": "http:\/\/test.leftjoin.ru\/all\/superset-bi-guide\/",
            "title": "Обзор дашборда в Superset",
            "content_html": "<p>В сегодняшней статье в рамках <a href=\"http:\/\/test.leftjoin.ru\/all\/modern-bi-systems\/\">большого обзора BI-систем<\/a> мы вновь посмотрим на обновленный и улучшенный <a href=\"https:\/\/superset.apache.org\">Apache Superset<\/a> — open-source инструмент с множеством опций, которые позволяют пользователям с любым опытом изучать и визуализировать данные, от простых линейных графиков до высокодетализированных геопространственных диаграмм (ух!).<\/p>\n<p>В видео обзоре мы разберем интерфейс этого BI-инструмента, конфигурацию, настроим отчеты и визуализацию (с дополнительными примерами), поговорим о фишках и сложностях Apache Superset, и построим итоговый дашборд.<br \/>\nКстати, <a href=\"https:\/\/superstore-superset.herokuapp.com\/superset\/dashboard\/superstore-old\/\">первую версию дашборда<\/a> мы сделали еще в прошлом году, но с тех пор вышло много апдейтов и мы построили новый. Так как мы уже показывали вам дашборд в Superset, в видео мы сравним предыдущую версию с новой и обсудим различия.<\/p>\n<div class=\"e2-text-video\">\n<iframe src=\"https:\/\/www.youtube.com\/embed\/N5y-B4-DQEo\" frameborder=\"0\" allowfullscreen><\/iframe><\/div>\n<p>Все аналитики команды Valiotti Analytics оценили дашборд в Superset. В итоге, мы получили следующие средние оценки (1 — худшая оценка, 10 — лучшая):<br \/>\nОтвечает ли заданным вопросам — <b>8,1<\/b><br \/>\nПорог входа в инструмент — <b>5,8<\/b><br \/>\nФункциональность инструмента — <b>7,7<\/b><br \/>\nУдобство пользования — <b>8,1<\/b><br \/>\nСоответствие результата макету — <b>8,9<\/b><br \/>\nВизуальная составляющая — <b>7,3<\/b><\/p>\n<p>Итог: дашборд получает <b>7,7 баллов из 10<\/b>. <a href=\"https:\/\/superstore-superset.herokuapp.com\/superset\/dashboard\/superstore\/\">Посмотрите на финальный результат и тоже оцените его!<\/a><\/p>\n<p><i>Автор дашборда, член команды Valiotti Analytics — <a href=\"https:\/\/t.me\/Blablamc\"><b>Егор Сатюков<\/b><\/a><\/i><\/p>\n",
            "date_published": "2022-05-16T10:20:45+03:00",
            "date_modified": "2022-05-16T10:31:11+03:00",
            "image": "http:\/\/test.leftjoin.ru\/pictures\/remote\/youtube-N5y-B4-DQEo-cover.jpg",
            "_date_published_rfc2822": "Mon, 16 May 2022 10:20:45 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "134",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "http:\/\/test.leftjoin.ru\/pictures\/remote\/youtube-N5y-B4-DQEo-cover.jpg"
                ]
            }
        },
        {
            "id": "116",
            "url": "http:\/\/test.leftjoin.ru\/all\/metabase-bi-guide\/",
            "title": "Обзор дашборда в Metabase",
            "content_html": "<p>В новом обзоре BI-систем мы посмотрим на <a href=\"https:\/\/www.metabase.com\">Metabase<\/a> — open-source инструмент для бизнес-аналитики, в котором можно писать запросы к данным нескольких видов и визуализировать результаты на дашбордах. Ещё Metabase может сам описать ваш датасорс и построить множество разных графиков, а ещё инструмент позволяет создавать «пульсы» благодаря встроенной системе оповещений, которые будет отправлять вам в Slack или на почту уведомления об изменениях в данных.<\/p>\n<p>В видео говорим про интерфейс BI-инструмента, про виды запросов и визуализаций в Metabase, про подключение датасорсов, про реализацию переменных и фильтров, про сводные таблицы (сделаны очень грамотно!), вёрстку дашборда в системе и публикацию в сети.<\/p>\n<div class=\"e2-text-video\">\n<iframe src=\"https:\/\/www.youtube.com\/embed\/-Rrciw8xuYg\" frameborder=\"0\" allowfullscreen><\/iframe><\/div>\n<p>Внутри команды мы оценили дашборд в Metabase и получили следующие средние оценки (1 — худшая оценка, 10 — лучшая):<br \/>\nОтвечает ли заданным вопросам — 8,6<br \/>\nПорог входа в инструмент — 6,0<br \/>\nФункциональность инструмента — 7,2<br \/>\nУдобство пользования — 7,4<br \/>\nСоответствие результата макету — 7,0<br \/>\nВизуальная составляющая — 6,6<\/p>\n<p>Итог: дашборд получает 7,1 баллов из 10. <a href=\"http:\/\/analyticsuperstore.herokuapp.com\/public\/dashboard\/ca3b98bd-6186-45c0-b205-852733ff1e98\">Посмотрите на полученный результат<\/a>.<\/p>\n<p><i>Автор дашборда, член команды Valiotti Analytics — <a href=\"https:\/\/t.me\/MariaAvdeeva624\">Мария Авдеева<\/a><\/i><\/p>\n",
            "date_published": "2021-09-08T13:22:25+03:00",
            "date_modified": "2023-07-25T15:22:33+03:00",
            "image": "http:\/\/test.leftjoin.ru\/pictures\/remote\/youtube--Rrciw8xuYg-cover.jpg",
            "_date_published_rfc2822": "Wed, 08 Sep 2021 13:22:25 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "116",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "http:\/\/test.leftjoin.ru\/pictures\/remote\/youtube--Rrciw8xuYg-cover.jpg"
                ]
            }
        },
        {
            "id": "111",
            "url": "http:\/\/test.leftjoin.ru\/",
            "title": "Анализируем речь в Python: О чем говорят гости youtube-канала вДудь",
            "content_html": "<p>Сегодня при помощи ML мы будем анализировать прямую речь. В качестве данных используем интервью, которые журналист Юрий Дудь берет для своего YouTube-канала.<br \/>\nВыход практически каждого ролика на канале «вДудь» считается событием, а некоторые из этих релизов даже сопровождаются скандалами из-за неосторожных высказываний его гостей.<br \/>\nПосмотрим с помощью Python и лемматизации о чем таком интересном рассказывали герои роликов канала «вДудь».<\/p>\n<p><b>Парсим тексты субтитров<\/b><br \/>\nВ этом проекте мы будем использовать библиотеки, которые обрабатывают тексты, но сначала нам нужно эти тексты добыть. Импортируем API-интерфейс Python <span class=\"inline-code\">youtube_transcript_api<\/span>, который скачивает субтитры из видео на YouTube.<\/p>\n<pre class=\"e2-text-code\"><code>import pandas as pd\r\nimport numpy as np\r\n\r\nfrom youtube_transcript_api import YouTubeTranscriptApi\r\nimport json<\/code><\/pre><p>Предобработаем URL видео для скачивания субтитров. Всего мы собрали 100 роликов с интервью. В некоторых из интервью нет подготовленных субтитров. В файле <span class=\"inline-code\">‘dud.csv’<\/span> заранее подготовлен список гостей канала вДудь с ссылками на их интервью.<\/p>\n<pre class=\"e2-text-code\"><code>def new_url(s):\r\n    return s.replace('watch?v=','').replace('be.com','.be').replace('www.','')\r\n\r\ndef url_to_id(s):\r\n    return s.partition('be\/')[2]\r\n\r\ndf = pd.read_csv('dud.csv')\r\ndf['URL'] = df['URL'].apply(new_url)\r\ndf['video_id'] = df['URL'].apply(url_to_id)\r\ndf = df.set_index(keys='Гость')<\/code><\/pre><p>У нас теперь есть датафрейм, в котором пока только информация о гостях и ссылка на видео. Но это пока.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/test.leftjoin.ru\/pictures\/--2021-06-01--10.49.04.png\" width=\"638\" height=\"407\" alt=\"\" \/>\n<\/div>\n<p>Загрузим в нашу таблицу субтитры интервью. Если субтитры найти не удалось, то выведем на экран имена людей, к интервью с которыми их нет или они отключены (или субтитры есть, но не на русском языке).<\/p>\n<pre class=\"e2-text-code\"><code>texts = []\r\nno_sub = []\r\nfor speaker in df.index:\r\n    video_id = df.loc[speaker,'video_id']\r\n    try:\r\n        data = YouTubeTranscriptApi.get_transcript(video_id, languages=['ru', 'ru'])\r\n        data = ' '.join([words['text'] for words in data])\r\n    except Exception:\r\n        print('Нет Субтитров для: ', speaker)\r\n        no_sub.append(speaker)\r\n        data = &quot;&quot;\r\n    texts.append(data)\r\ndf['text'] = texts\r\ndf.to_csv('df_dud.csv')<\/code><\/pre><p>У девяти из 100 интервьюируемых субтитров не оказалось и нам вернулся такой текст:<\/p>\n<pre class=\"e2-text-code\"><code>Нет Субтитров для:  L'one\r\nНет Субтитров для:  Шнур\r\nНет Субтитров для:  Ресторатор\r\nНет Субтитров для:  Амиран\r\nНет Субтитров для:  Ильич\r\nНет Субтитров для:  Соболев\r\nНет Субтитров для:  Иван Дорн\r\nНет Субтитров для:  Навальный\r\nНет Субтитров для:  Noize MC<\/code><\/pre><p><b>Анализируем тексты<\/b><br \/>\nАнализ текстовой информации сложен в той степени, в какой сложен язык, на котором написан текст. Самый популярный способ решения такой аналитической задачи — стемминг. Стеммингом называют процесс нахождения стема — основы слова. Для стемминга используют библиотеку NLTK (Natural Language Toolkit), которая содержит правила образования стемов.<br \/>\nЭтот метод хорошо работает с английскими словами, но у русского языка слишком сложно устроена морфология образования слов, что повышает вероятность ошибки. Стемминг будет хорошим выбором для анализа строк, содержание которых вы примерно представляете себе (например, когда пользователя просят заполнить форму).<br \/>\nДля нашего кейса лучше выбрать лемматизацию — приведение слова к его словарной форме. Проведя лемматизацию текстовых данных по правилам русского языка мы получим существительные в именительном падеже единственного числа (кошками — кошка), прилагательные в именительном падеже мужского рода (пушистая — пушистый), а глаголы в инфинитиве несовершенного вида (бежит — бежать). В этом проекте мы используем MyStem и Pymorphy. Обе библиотеки представляют собой морфологические анализаторы.<br \/>\nКроме того, поскольку при анализе  мы будем использовать алгоритмы машинного обучения, то нам нужно избавиться от слов, которые часто встречаются, но не несут какой-то ценности для анализа. В противном случае они могут повлиять на работу модели. Список таких стоп-слов возьмем из библиотеки <span class=\"inline-code\">nltk.corpus<\/span>.<br \/>\nМаксимально подробно о подготовке текста к анализу мы рассказывали в материале <a href=\"http:\/\/test.leftjoin.ru\/all\/borderline-text-analysis\/\" class=\"nu\">«<u>Python и тексты нового альбома Земфиры<\/u>»<\/a>. Тут была проведена идентичная работа подготовка текстов, после чего мы посчитали количество уникальных слов (’Unique Words’) и записали, как часто они встречаются в речи собеседников Дудя (‘PPT Unique Words’).<\/p>\n<pre class=\"e2-text-code\"><code>df['Total Words'] = df['text'].apply(number_words)\r\ndf['Unique Words'] = df['text'].apply(set).apply(len)\r\ndf['PPT Unique Words'] = df['Unique Words'] \/ df['Total Words'] * 100\r\ndf['PPT Unique Words'] = df['PPT Unique Words'].apply(lambda x: round(x,2))\r\ndf.to_csv('df_dud.csv')<\/code><\/pre><p><b>Строим облако слов<\/b><br \/>\nАвтоматизируем построение облака слов для каждого гостя Дудя. Таким образом мы узнаем какие слова встречаются в их речи чаще всего. Для визуализации инсталлируем <span class=\"inline-code\">wordcloud<\/span>, а <span class=\"inline-code\">word_tokenize<\/span> подсчитает количество слов, которые будут встречаться чаще всего.<\/p>\n<pre class=\"e2-text-code\"><code>import nltk\r\nfrom wordcloud import WordCloud\r\nimport pandas as pd\r\nimport matplotlib.pyplot as plt\r\nfrom nltk import word_tokenize, ngrams\r\n\r\ndef word_cloud(df, occup=None, general=True):\r\n    if occup:\r\n        df = df[df['Род деятельности'] == occup] \r\n    if general:\r\n        data_source = zip([occup], [' '.join([el for el in df['Prepared Text']])])\r\n        col_count, row_count = 1, 1\r\n    else:\r\n        data_source = zip([el for el in df.index], df['Prepared Text']) \r\n        col_count = max(1, df.shape[0] \/\/ 3)\r\n        row_count = df.shape[0] \/\/ col_count + 1\r\n        \r\n    fig = plt.figure()\r\n    plt.figure(figsize=(10, 10))\r\n    fig.patch.set_facecolor('white')\r\n    plt.subplots_adjust(wspace=0.3, hspace=0.2)\r\n    i = 1\r\n    for name, text in data_source:\r\n        tokens = word_tokenize(text)\r\n        text_raw = &quot; &quot;.join(tokens)\r\n        wordcloud = WordCloud(colormap='PuBu', background_color='white', contour_width=10).generate(text_raw)\r\n        plt.subplot(row_count, col_count, i, label=name,frame_on=True)\r\n        plt.tick_params(labelsize=10)\r\n        plt.imshow(wordcloud)\r\n        plt.axis(&quot;off&quot;)\r\n        plt.title(name,fontdict={'fontsize':12,'color':'grey'},y=1.0)\r\n        plt.tick_params(labelsize=10)\r\n        i += 1\r\n    plt.savefig(f'.\/word_cloud\/{occup}.png', dpi=900)<\/code><\/pre><p>У нас получились вот такие облака слов по каждому из гостей программы:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/test.leftjoin.ru\/pictures\/--2021-06-02--18.58.17.png\" width=\"1198\" height=\"678\" alt=\"\" \/>\n<\/div>\n<p><b>Работа с Word2vec<\/b><br \/>\nС помощью библиотеки <span class=\"inline-code\">gensim<\/span> вызываем модуль, который должен представить слова в наших текстах как векторы.<\/p>\n<pre class=\"e2-text-code\"><code>import plotly.graph_objects as go\r\nimport plotly.figure_factory as ff\r\nfrom scipy import spatial\r\nimport collections\r\nimport pymorphy2\r\nimport gensim\r\n\r\nmorph = pymorphy2.MorphAnalyzer()<\/code><\/pre><p>Для работы модели используем бинарный файл <span class=\"inline-code\">‘model.bin’<\/span>:<\/p>\n<pre class=\"e2-text-code\"><code>model = gensim.models.KeyedVectors.load_word2vec_format('model.bin', binary=True)<\/code><\/pre><p>Модель <b>Word2Vec<\/b> основана на нейронных сетях и позволяет представлять слова в виде векторов, учитывая семантическую составляющую. Ее мы уже использовали в анализе лирики Земфиры. Косинусная мера семантически схожих слов будет стремиться к 1, а  у двух слов, не имеющих ничего общего по смыслу, она близка к 0.<br \/>\nНапишем функцию, которая будет принимать список слов из наших интервью, распознавать для каждого часть речи, а затем получать и суммировать вектора — так мы сможем находить вектора не для одного слова, а для целых предложений и текстов.<\/p>\n<pre class=\"e2-text-code\"><code>def get_vector(word_list):\r\n    vector = 0\r\n    for word in word_list:\r\n        pos = morph.parse(word)[0].tag.POS\r\n        if pos == 'INFN':\r\n            pos = 'VERB'\r\n        if pos in ['ADJF', 'PRCL', 'ADVB', 'NPRO']:\r\n            pos = 'NOUN'\r\n        if word and pos:\r\n            try:\r\n                word_pos = word + '_' + pos\r\n                this_vector = model.word_vec(word_pos)\r\n                vector += this_vector\r\n            except KeyError:\r\n                continue\r\n    return vector<\/code><\/pre><p>Для каждого интервью находим вектор и собираем соответствующий столбец в датафрейм:<\/p>\n<pre class=\"e2-text-code\"><code>vec_list = []\r\nfor word in df['Prepared Text']:\r\n    vec_list.append(get_vector(word.split()))\r\ndf['Vector'] = vec_list<\/code><\/pre><p>Напишем функцию, который будет подсчитывать N-граммы для каждого гостя:<\/p>\n<pre class=\"e2-text-code\"><code>def get_top_five_ngrams(text, n):\r\n    counter = collections.Counter()\r\n    bigrams = list(ngrams(text, n))\r\n    counter.update(bigrams)\r\n    return counter.most_common()[:10]<\/code><\/pre><p>Построим топ N-грамм в соответствии с группой:<\/p>\n<pre class=\"e2-text-code\"><code>top_words = dict.fromkeys(df.index)\r\nfor person in df.index:\r\n    text = df.loc[person,'Prepared Text']\r\n    n_gram = get_top_five_ngrams(text.split(), 1)\r\n    n_list = []\r\n    for item in n_gram:\r\n        n_list.append(item[0][0])\r\n    top_words[person] = n_list\r\nordered_pesrons = df.index\r\ntop_2_words = []\r\nfor person in ordered_pesrons:\r\n    top_2_words.append(top_words[person])\r\ndf['Top bigramms'] = top_2_words<\/code><\/pre><p>Напишем функцию, которая будет добавлять самые часто встречающиеся слова в речи интервьюируемого:<\/p>\n<pre class=\"e2-text-code\"><code>def top_similar(df, occup=None, agg='Person'):\r\n    if occup:\r\n        df = df[df['Род деятельности'] == occup]\r\n    if agg == 'Person':\r\n        top_words_person = dict.fromkeys(df.index)\r\n        for person in df.index:\r\n            vec = df.loc[person, 'Vector']\r\n            words = model.similar_by_vector(vec, topn=10)\r\n            top_words_person[person] = [el[0].split('_')[0] for el in words]\r\n        df_person_words = pd.DataFrame(columns=[agg,'Top Words'])\r\n    elif agg == 'Total':\r\n        top_words_person = {'Total':0}\r\n        vec = df['Vector'].sum()\r\n        words = model.similar_by_vector(vec, topn=10)\r\n        top_words_person['Total'] = [el[0].split('_')[0] for el in words]\r\n        df_person_words = pd.DataFrame(columns=[agg,'Top Words'])\r\n    \r\n    for k,v in top_words_person.items():\r\n        df_person_words = df_person_words.append({agg:k, 'Top Words':v},ignore_index=True)\r\n    df_person_words = df_person_words.set_index(keys=agg) \r\n    \r\n    return df_person_words<\/code><\/pre><p>Для дальнейшей работы группируем гостей по цеховой принадлежности. Наверное, можно ожидать, что режиссеры будут обсуждать кино и все, что с ним связано, а музыканты — музыку.<\/p>\n<pre class=\"e2-text-code\"><code>df_occup = pd.DataFrame(columns=['Occupation', 'Top Words'])\r\nfor occup in df['Род деятельности'].unique():\r\n    words = top_similar(df, occup=occup, agg='Total')['Top Words'][0]\r\n    df_occup = df_occup.append({'Occupation':occup, 'Top Words’:words},ignore_index=True)\r\n\r\nfor i in range(10):\r\n    df_occup[f'Top {i+1} word'] = df_occup['Top Words'].apply(lambda x: x[i])<\/code><\/pre><p>У нас получится новый датафрейм с топом слов для каждой категории гостей (музыкант, политик, актер и тд).<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/test.leftjoin.ru\/pictures\/--2021-06-02--20.55.04.png\" width=\"1104\" height=\"631\" alt=\"\" \/>\n<\/div>\n<p><b>Анализ риторики гостя<\/b><br \/>\nИспользуя метод <span class=\"inline-code\">similar_by_vector<\/span> для каждого из видов деятельности интервьюируемых, мы получаем список слов, которые наиболее точно описывают тематику текстов.<br \/>\nСтоит отметить, что слово «государство» стоит на первом месте не только в интервью политиков и бизнесменов, но и дизайнеров с писателями. Очевидно, что тема разговора у всех профессиональных групп смещена в сторону политики.<br \/>\nАктёры, кинокритики и музыканты описываются вполне закономерными для их сфер деятельности словами. А вот у фотографов нет ни слова про фотографию или творчество, но есть «работа», «трудоустройство», «существовать» и “семья”.<br \/>\nСравним риторику героев, построив box plot для каждой категории с помощью <span class=\"inline-code\">plotly<\/span>.<\/p>\n<pre class=\"e2-text-code\"><code>import plotly.express as px\r\n\r\nl = []\r\nfor el,ind in zip(df['Род деятельности'].value_counts(), df['Род деятельности'].value_counts().index):\r\n    if el &gt; 1:\r\n        l.append(ind)\r\n\r\ndf_kpi = df[df['Род деятельности'].isin(l)]\r\nfor kpi in ['Total Words', 'Unique Words','PPT Unique Words']:\r\n    buf_df = df_kpi[['Род деятельности',kpi]]\r\n    fig = px.box(df_kpi, \r\n                 x='Род деятельности',\r\n                 y=kpi,\r\n                )\r\n    fig.show()<\/code><\/pre><iframe id=\"igraph\" scrolling=\"no\" style=\"border:none;\" seamless=\"seamless\" src=\"https:\/\/plotly.com\/~Bespalova\/3.embed?link=false\" height=\"650\" width=\"100%\"><\/iframe>\n<p>Наиболее разговорчивыми гостями оказались блогеры — и в среднем, и по медиане они наговорили больше всего слов. И опередили по этому показателю даже писателей. А вот самыми немногословными оказались рэперы, хотя, казалось бы, вот кто должен быть хорош в импровизации.<\/p>\n<iframe id=\"igraph\" scrolling=\"no\" style=\"border:none;\" seamless=\"seamless\" src=\"https:\/\/plotly.com\/~Bespalova\/5.embed?link=false\" height=\"650\" width=\"100%\"><\/iframe>\n<p>Что касается количества уникальных слов, то и тут блогеры значительно ушли вперед. Согласно медианным значениям, тройка лидеров выглядит так — блогер, журналист и писатель. А вот словарный запас рэперов оставляет желать лучшего.<\/p>\n<iframe id=\"igraph\" scrolling=\"no\" style=\"border:none;\" seamless=\"seamless\" src=\"https:\/\/plotly.com\/~Bespalova\/1.embed?link=false\" height=\"650\" width=\"100%\"><\/iframe>\n<p>Если говорить об отношении уникальных слов к общему количеству, то у всех групп гостей примерно одинаковый медианный показатель. Наиболее вариативными оказались музыканты — усы от их ящика показываю наибольший разброс значений.<\/p>\n",
            "date_published": "2021-06-07T11:26:28+03:00",
            "date_modified": "2023-05-19T15:03:12+03:00",
            "image": "http:\/\/test.leftjoin.ru\/pictures\/Total-Words.png",
            "_date_published_rfc2822": "Mon, 07 Jun 2021 11:26:28 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "111",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": [
                    "http:\/\/test.leftjoin.ru\/pictures\/Total-Words.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/Unique-Words.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/PPT-Unique-Words.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/--2021-06-01--10.49.04.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/--2021-06-02--18.58.17.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/--2021-06-02--20.55.04.png"
                ]
            }
        },
        {
            "id": "102",
            "url": "http:\/\/test.leftjoin.ru\/all\/yandex-datalens-guide\/",
            "title": "Обзор дашборда Yandex DataLens",
            "content_html": "<p>Два года назад Яндекс выпустил собственный инструмент для визуализации данных — Yandex DataLens, работающий на базе Yandex Cloud. В блоге уже выходил <a href=\"http:\/\/test.leftjoin.ru\/all\/obzor-yandex-datalens\/\">обзор инструмента<\/a> — но тогда сервис был на стадии Preview, и за два года функционал инструмента расширили. Сервис тарифицируемый и без привязки платёжного аккаунта поработать в нём не получится, но помимо платного тарифа есть и бесплатный.<\/p>\n<p class=\"note\">Подробнее о тарифах Yandex DataLens можно почитать в <a href=\"https:\/\/cloud.yandex.ru\/docs\/datalens\/pricing#sessions\">документации<\/a><\/p>\n<p>В сегодняшнем обзоре BI-систем мы посмотрим, как зарегистрировать аккаунт в DataLens, подключить датасет и создать дополнительные таблицы на основе SQL-запросов, построить визуализации, связать их с фильтрами и добавить на дашборд согласно <a href=\"http:\/\/test.leftjoin.ru\/all\/bi-task-canvas\/\">макету<\/a>, а затем опубликовать результат.<\/p>\n<div class=\"e2-text-video\">\n<iframe src=\"https:\/\/www.youtube.com\/embed\/wKz6rE9n0wY\" frameborder=\"0\" allowfullscreen><\/iframe><\/div>\n<p>Внутри команды мы оценили дашборд в DataLens и получили следующие средние оценки (1 — худшая оценка, 10 — лучшая):<\/p>\n<p>Отвечает ли заданным вопросам — 7,0<br \/>\nПорог входа в инструмент — 8,0<br \/>\nФункциональность инструмента — 7,0<br \/>\nУдобство пользования — 8,3<br \/>\nСоответствие результата макету — 7,5<br \/>\nВизуальная составляющая — 8,5<br \/>\nИтог: дашборд получает 8 баллов из 10. <a href=\"https:\/\/datalens.yandex\/l3ype8oswf00g\">Посмотрите на полученный результат<\/a>.<\/p>\n",
            "date_published": "2021-03-17T12:36:34+03:00",
            "date_modified": "2021-03-17T15:55:12+03:00",
            "image": "http:\/\/test.leftjoin.ru\/pictures\/remote\/youtube-wKz6rE9n0wY-cover.jpg",
            "_date_published_rfc2822": "Wed, 17 Mar 2021 12:36:34 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "102",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "http:\/\/test.leftjoin.ru\/pictures\/remote\/youtube-wKz6rE9n0wY-cover.jpg"
                ]
            }
        },
        {
            "id": "97",
            "url": "http:\/\/test.leftjoin.ru\/all\/make-dashboards-using-product-thinking-approach\/",
            "title": "Как создавать дашборды, используя подход продуктивного мышления",
            "content_html": "<p class=\"note\">Этот материал — перевод статьи <a href=\"https:\/\/shopify.engineering\/make-dashboards-using-product-thinking-approach?utm_campaign=The%20Data%20Science%20Roundup&utm_medium=email&utm_source=Revue%20newsletter\" class=\"nu\">«<u>How to Make Dashboards Using a Product Thinking Approach<\/u>»<\/a><\/p>\n<p>Ни для кого не секрет, что передача результатов исследований другим людям — важнейшая часть науки о данных. Один из инструментов, который мы часто используем в Shopify — дашборды. Этот пост — пошаговое руководство по созданию дашбордов, ориентированных на пользователя и результат.<\/p>\n<p>Люди используют слово «дашборд» для обозначения разных вещей. В этом посте я сужаю своё определение до автоматически обновляемого набора визуализаций данных и бизнес-показателей.<\/p>\n<p>К сожалению, если вы несерьёзно относитесь к процессу создания дашборда, получится так, что вы вложили много усилий в создание продукта, который не имеет реальной ценности. Дашборд, который никто не использует полезен примерно так же, как барахло из магазинов на диване. Итак, как вы можете убедиться том, что ваш дашборд удовлетворяет запросам пользователя?<\/p>\n<p>Ключевой момент — продуктовое мышление. Это неотъемлемая часть отдела Data Science в Shopify. Как мы создаём продукты, думая о наших продавцах, так и специалисты по обработке данных создают дашборды, ориентированные на потребности аудитории.<\/p>\n<h2>Нужен ли мне дашборд?<\/h2>\n<p>Прежде чем мы погрузимся в создание дашбордов, первое, о чём вы должны спросить себя — подходит ли этот инструмент вам. Есть множество других способов передачи данных, включая длинные отчёты и презентации. Создание и обслуживание дашборда может занять много времени, и вам ни к чему тратить силы без необходимости.<\/p>\n<p>Вопросы, которые следует задать себе:<\/p>\n<ol start=\"1\">\n<li>Будут ли данные дашборда обновляться динамически?<\/li>\n<li>Хотите ли вы, чтобы исследование было интерактивным?<\/li>\n<li>Ваша цель заключается в том, чтобы мониторить что-то и отвечать на вопросы, связанные с данными?<\/li>\n<li>Нужно ли пользователю возвращаться к этим данным ввиду их ежедневного изменения?<\/li>\n<\/ol>\n<p>Если на большинство вопросов вы ответили «Да», то дашборд — хороший выбор для решения вашей проблемы.<\/p>\n<p>Иначе, если ваша цель — призыв пользователя к действию, дашборд — не лучший выбор. Дашборды удобны, потому что они автоматически представляют обновляемые метрики и визуализации. Если вы хотите рассказать историю, чтобы повлиять на аудиторию, вам лучше поработать с историческими статическими данными в отчёте или презентации.<\/p>\n<h2>1. Поймите проблему и аудиторию<\/h2>\n<p>После того, как вы приняли решение создать дашборд, вам нужно определить цель и аудиторию. Можете начать с подобной таблицы:<\/p>\n<div class=\"e2-text-table\">\n<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n<tr>\n<td><b>Аудитория<\/b><\/td>\n<td><b>Цель<\/b><\/td>\n<\/tr>\n<tr>\n<td>Команда обработки данных<\/td>\n<td>Решить, нужно ли отправлять экспериментальную фичу всем нашим продавцам<\/td>\n<\/tr>\n<tr>\n<td>Руководство<\/td>\n<td>Мониторить влияние COVID-19 на продавцов в розничных магазинах<\/td>\n<\/tr>\n<tr>\n<td>Продуктовая команда<\/td>\n<td>Обнаружить изменения в поведении пользователей после внедрения новой фичи<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p>Может получиться так, что для одной аудитории у вас больше одной цели. Это означает, что вам нужно больше одного дашборда.<\/p>\n<p>Четко определив свою аудиторию и причину создания дашборда, вам нужно выяснить, какие показатели лучше всего удовлетворяют потребностям группы. В большинстве случаев это неочевидно и может превратиться в долгую беседу с пользователем, и это нормально! Время, потраченное на данном этапе, принесёт плоды позже.<\/p>\n<p>Хорошие показатели — те, которые тщательно отобраны с учётом поставленных целей. Если ваша цель — отслеживание аномалий, вам необходимо включить широкий спектр метрик и визуализаций с заданными пороговыми значениями. Если вы хотите, чтобы дашборд показывал, насколько успешен ваш продукт, вам нужно подумать о небольшом количестве KPI, которые являются показателями реальной ценности.<\/p>\n<p>После того, как вы определитесь с показателями и визуализацией данных, составьте приблизительный план того, как они будут представлены: это может быть электронная таблица, или что-то более наглядное — эскиз на доске или в даже ежедневнике. Покажите его целевой группе, прежде чем писать код: важно убедиться, что ваше предложение поможет решить их проблему.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/test.leftjoin.ru\/pictures\/NewFeatureDashboard.jpg\" width=\"470\" height=\"600\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Пример макета дашборда. Визуальное представление способствует быстрому согласованию<\/div>\n<\/div>\n<p>Теперь, когда у вас есть план, вы готовы приступить к созданию дашборда.<\/p>\n<h2>2. Помните о своих пользователях<\/h2>\n<p>Основная сложность создания дашборда заключается в том, что представление данных должно одновременно точным и понятным вашей аудитории.<\/p>\n<p>Когда дело доходит до точности и эффективности, вам, вероятно, придётся написать код или запросы для создания показателей или визуализации на основе ваших данных. В Shopify при написании кода мы всегда следуем лучшим методам работы с программным обеспечением.<\/p>\n<ol start=\"1\">\n<li>Придерживайтесь единых стандартов оформления, чтобы сделать запросы более читабельными<\/li>\n<li>Оптимизируйте запросы, чтобы сделать их максимально эффективными<\/li>\n<li>Пользуйтесь системами контроля версий, чтобы отслеживать изменение кода в процессе разработки<\/li>\n<li>Получите обратную связь по дашборду для обмена контекстом<\/li>\n<\/ol>\n<p>Способ представления данных напрямую влияет на понимание данных пользователем.<\/p>\n<h2>Используйте макет, чтобы сосредоточить внимание пользователей<\/h2>\n<p>Как и на первой полосе газеты, вашим пользователям нужно узнать самую важную информацию в первые несколько секунд. Один из способов сделать это — структурировать дашборд в виде перевернутой пирамиды, у которой вверху самые «сочные» заголовки, в середине — важные детали, а внизу — общая, но не менее важная справочная информация.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/test.leftjoin.ru\/pictures\/InvertedPyramid.jpg\" width=\"732\" height=\"600\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Перевернутая пирамида —  пример организации иерархии информации, которую вы отражаете на дашборде<\/div>\n<\/div>\n<p>Не забудьте использовать исходные цели из первого этапа при формировании иерархии.<\/p>\n<p>Делайте макет логичным и простым. Провожайте взгляд пользователя по странице, используя последовательную визуальную иерархию заголовков и разделов. Сгруппируйте вместе связанные показатели, чтобы их было легко найти.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/test.leftjoin.ru\/pictures\/VisualHierarchy.jpg\" width=\"768\" height=\"529\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Визуальная иерархия, группировка разделов и свободное пространство делают дашборд удобным для чтения<\/div>\n<\/div>\n<p>Не бойтесь добавлять свободное пространство — оно даёт пользователям передышку улучшает понимание информации.<\/p>\n<h2>Оставляйте только целевой контент<\/h2>\n<p>Визуализации, которые вы выбираете для дашборда, могут сделать его лучше или навредить. По этому поводу существует множество ресурсов, поэтому я не буду вдаваться в подробности, но стоит ознакомиться с теорией и поэкспериментировать с тем, что лучше всего подходит для вашей ситуации.<\/p>\n<p>Будьте смелыми и удалите все визуализации или KPI, не имеющие прямого отношения к вашим целям. Лишние подробности скрывают важные факты под беспорядком. Если вам все равно кажется, что они нужны, подумайте о создании отдельного дашборда для вторичного анализа.<\/p>\n<h2>Убедитесь, что ваш дашборд включает бизнес-контекст и контекст данных<\/h2>\n<p>Обеспечьте достаточный бизнес-контекст, чтобы кто-то, открывший ваш дашборд, мог сразу получить ответы на такие вопросы:<\/p>\n<ol start=\"1\">\n<li>Почему существует этот дашборд<\/li>\n<li>Для кого он создан<\/li>\n<li>Когда он был построен и когда он перестанет быть актуальным<\/li>\n<li>Какие функции он реализует<\/li>\n<\/ol>\n<p>Контекст данных тоже способен сориентировать пользователя и задать базовый уровень для показателей на дашборде. Например, вместо того, чтобы просто показывать число новых пользователей за неделю, добавьте стрелку, показывающую направление и процентное изменение с того же времени на прошлой неделе.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/test.leftjoin.ru\/pictures\/StatisticsDemonstratingValueWithContext.jpg\" width=\"768\" height=\"399\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Статистика справа лучше, чем слева, потому что преподносит контекст.<\/div>\n<\/div>\n<p>Контекст можно предоставить и другим путём — например, наладив сегментацию или фильтрацию данных. Различные сегменты могут давать результаты с совершенно противоположными значениями.<\/p>\n<h2>Перед публикацией подумайте об актуальности данных<\/h2>\n<p>Свежесть дашборда зависит от актуальности приведённых данных, поэтому подумайте о том, как часто обновляется информация. Перед отправкой лучше всего получить как минимум два технических обзора и одобрение предполагаемых пользователей. В конце концов, если они не понимают дашборд или не видят в нём ценности, они не будут им пользоваться.<\/p>\n<h2>3. Поддержка<\/h2>\n<p>Предположим, вы приложили много усилий, чтобы понять проблему и аудиторию, и создали лучший дашборд на свете. Однако важно помнить, что дашборд — это прежде всего инструмент, и важно убедиться, что он используется и приносит пользу.<\/p>\n<h2>«Продавайте» дашборд<\/h2>\n<p>Вы должны распространить информацию и убедиться, что дашборд попал в нужные руки. То, как вы решите продвигать свой инструмент, зависит от аудитории и команды, и хорошо бы подумать о том, как его запустить и сделать доступным для поиска в долгосрочной перспективе.<\/p>\n<p>Перед запуском подумайте, как вы можете представить всем вашу работу. У вас будет только один шанс сделать это, поэтому действовать надо осознанно. Например, вы можете подготовить сопроводительное руководство по использованию дашборда в виде короткого пошагового видео.<\/p>\n<p>В долгосрочной перспективе убедитесь, что после запуска дашборд легко найти каждому, кто может в нём нуждаться. Можно разместить его на каких-нибудь внутренних порталах и использовать заголовки и теги, адаптированные к общим условиям поиска. Не бойтесь кричать о своем дашборде в подходящие моменты.<\/p>\n<h2>Используйте и улучшайте<\/h2>\n<p>Вернитесь к первоначальным целям и подумайте, как их достичь. Например, если задача дашборда — понять, стоит ли внедрять новую фичу, будьте готовы в момент принятия решения поделиться с коллегами своим мнением на основе данных дашборда.<\/p>\n<p>Отслеживайте использование дашборда, чтобы узнать, как часто люди делятся им или цитируют его. Так вы получите полное представление о том, какое влияние сумели оказать.<\/p>\n<p>Если дашборд не дал желаемого результата, выясните, что пошло не так. Есть ли что-то, что вы могли бы изменить, чтобы сделать его полезнее? Используйте это исследование, чтобы улучшить следующий дашборд.<\/p>\n<h2>Поддерживайте<\/h2>\n<p>Наконец, как и в случае с любой информационной системой, без надлежащего обслуживания дашборд придёт в негодность. Назначьте специалиста по данным или группу специалистов, которые ответят на вопросы или исправят возникшие проблемы.<\/p>\n<h2>Ключевые выводы<\/h2>\n<p class=\"note\">Посмотрите и другие наши переводы — <a href=\"http:\/\/test.leftjoin.ru\/all\/10-rules-for-better-dashboard-design\/\" class=\"nu\">«<u>10 правил для совершенного дизайна дашбордов<\/u>»<\/a> и <a href=\"http:\/\/test.leftjoin.ru\/all\/guide-to-designing-tables\/\" class=\"nu\">«<u>Полное руководство по созданию таблиц<\/u>»<\/a><\/p>\n<p>Теперь вы знаете, как разбить процесс создание дашборда с помощью продуктового мышления. Резюмируя, вы можете использовать продуктовый подход к созданию впечатляющего дашборда, выполнив следующие действия:<\/p>\n<ol start=\"1\">\n<li>Понять проблему и аудиторию, спроектировать дашборд, который хорошо справляется с одной задачей для чёткого круга пользователей<\/li>\n<li>Учесть интересы пользователей, чтобы он был точным и простым для понимания<\/li>\n<li>Поддерживать полученный результат, продвигая и улучшая его в дальнейшем<\/li>\n<\/ol>\n<p>Выполнив эти три шага, вы создадите дашборд, который будет в центре внимания вашей аудитории.<\/p>\n",
            "date_published": "2021-02-19T17:44:12+03:00",
            "date_modified": "2021-02-19T16:53:49+03:00",
            "image": "http:\/\/test.leftjoin.ru\/pictures\/--2021-02-19--13.50.15.png",
            "_date_published_rfc2822": "Fri, 19 Feb 2021 17:44:12 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "97",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "http:\/\/test.leftjoin.ru\/pictures\/--2021-02-19--13.50.15.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/NewFeatureDashboard.jpg",
                    "http:\/\/test.leftjoin.ru\/pictures\/InvertedPyramid.jpg",
                    "http:\/\/test.leftjoin.ru\/pictures\/VisualHierarchy.jpg",
                    "http:\/\/test.leftjoin.ru\/pictures\/StatisticsDemonstratingValueWithContext.jpg"
                ]
            }
        },
        {
            "id": "91",
            "url": "http:\/\/test.leftjoin.ru\/all\/radial-pie-v-tableau\/",
            "title": "Radial pie в Tableau",
            "content_html": "<p>Как-то раз на просторах YouTube мы нашли вот такое видео с гайдом по Radial Pie в Tableau:<\/p>\n<div class=\"e2-text-video\">\n<iframe src=\"https:\/\/www.youtube.com\/embed\/w6qEG7AyDYo\" frameborder=\"0\" allowfullscreen><\/iframe><\/div>\n<p>Нам очень понравилась реализация — диаграмма сильно напоминает кольца активности Apple Watch. Но, к сожалению, по задумке графика кольца останавливаются на 270 градусах. Показываем, как сделать максимально приближенную к кольцам активности реализацию.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/test.leftjoin.ru\/pictures\/rings.png\" width=\"476\" height=\"459\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Кольца активности в Apple Watch<\/div>\n<\/div>\n<h2>Подготовка данных<\/h2>\n<p class=\"note\">Данная визуализация является весьма спорной в контексте бизнес-дашбордов<\/p>\n<p>Загрузим датасорс в Tableau. Наши кольца — это круги из 360 точек, и для каждой нам нужно своё наблюдение. Это легко реализовать при помощи Bins: сначала перетянем файл под поле с этим же файлом, чтобы объединить датасет с самим собой. В результате датасет должен «удвоиться» и появится новое поле с наименованием файла.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/test.leftjoin.ru\/pictures\/--2021-01-21--16.25.48.png\" width=\"507\" height=\"277\" alt=\"\" \/>\n<\/div>\n<p>Создадим новое вычисляемое поле и назовем его Path.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/test.leftjoin.ru\/pictures\/2-20.png\" width=\"496\" height=\"129\" alt=\"\" \/>\n<\/div>\n<p>Затем перейдём на график. Кликнем правой кнопкой мыши по Path из раздела Measures и создадим из этого поля Bins. Size of bins установим на единицу:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/test.leftjoin.ru\/pictures\/4-11.png\" width=\"541\" height=\"247\" alt=\"\" \/>\n<\/div>\n<p>Создадим новое вычисляемое поле Index:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/test.leftjoin.ru\/pictures\/5-11.png\" width=\"292\" height=\"133\" alt=\"\" \/>\n<\/div>\n<p>И поле Percentage, которое отобразит, насколько выполнены цели. Если достижение по цели будет больше самой цели, мы отобразим 1, чтобы не появлялись значения больше единицы.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/test.leftjoin.ru\/pictures\/6-11.png\" width=\"469\" height=\"122\" alt=\"\" \/>\n<\/div>\n<p>Теперь создаём следующие меры:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/test.leftjoin.ru\/pictures\/7-6.png\" width=\"258\" height=\"111\" alt=\"\" \/>\n<\/div>\n<p>wc_start — мера начальной координаты каждого кольца. Она считается по полю Order, соответственно, у Stand Order равен 1, а значит начинаться это кольцо будет раньше всех, в точке 1 по OY. У кольца Exercise Order равен 2, оно будет в середине. У Move Order равен 3 — это кольцо будет внешним и начнётся в точке 3.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/test.leftjoin.ru\/pictures\/8-7.png\" width=\"259\" height=\"116\" alt=\"\" \/>\n<\/div>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/test.leftjoin.ru\/pictures\/9-7.png\" width=\"262\" height=\"95\" alt=\"\" \/>\n<\/div>\n<p>percentage_label — мера для Label, в которой записано процентное отношение достижения по цели к самой цели:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/test.leftjoin.ru\/pictures\/9.1.png\" width=\"293\" height=\"118\" alt=\"\" \/>\n<\/div>\n<p>Y2 — вспомогательная мера для начальных точек колец:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/test.leftjoin.ru\/pictures\/14-3.png\" width=\"253\" height=\"100\" alt=\"\" \/>\n<\/div>\n<p>Наконец, финальные поля X и Y. Если значение меньше 360, мы описываем при помощи синуса внутреннюю линию кольца, если больше — то внешнюю линию, иначе — острие, на котором кончается кольцо. Формула вычисления Y аналогична X, но считаем не синус, а косинус.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/test.leftjoin.ru\/pictures\/10-7.png\" width=\"562\" height=\"215\" alt=\"\" \/>\n<\/div>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/test.leftjoin.ru\/pictures\/11-6.png\" width=\"575\" height=\"234\" alt=\"\" \/>\n<\/div>\n<h2>Визуализация<\/h2>\n<p>Измерение Path (bin) перетянем в поле Detail, X — в Columns, а Y — в Rows. X и Y должны вычисляться при помощи Path:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/test.leftjoin.ru\/pictures\/12-4.png\" width=\"631\" height=\"388\" alt=\"\" \/>\n<\/div>\n<p>Тип графика сменим с Automatic на Polygon и перетянем меру Index в поле Path. Поле Description перетягиваем в Color.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/test.leftjoin.ru\/pictures\/13-4.png\" width=\"818\" height=\"734\" alt=\"\" \/>\n<\/div>\n<p>Меру Y2 тоже перетягиваем в Rows и устанавливаем для оси Dual Axis. Из All в Marks необходимо удалить Measure Names. Правой кнопкой мыши кликаем на ОY и синхронизируем оси:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/test.leftjoin.ru\/pictures\/--2021-01-21--15.07.33.png\" width=\"221\" height=\"185\" alt=\"\" \/>\n<\/div>\n<p>Для Y2 устанавливаем тип Circle и корректируем размер:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/test.leftjoin.ru\/pictures\/123.png\" width=\"949\" height=\"462\" alt=\"\" \/>\n<\/div>\n<h2>Работа над оформлением<\/h2>\n<p>В Tableau есть возможность самому подобрать нужную гамму. Для жмём на Colors, затем на Edit colors, выбираем нужное поле и указываем цвет. Для гаммы колец из WatchOS мы подобрали такие цвета:<\/p>\n<ol start=\"1\">\n<li>Красный: rgb(229, 54, 83)<\/li>\n<li>Зелёный: rgb(186, 252, 79)<\/li>\n<li>Синий: rgb(117, 229, 228)<\/li>\n<\/ol>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/test.leftjoin.ru\/pictures\/--2021-01-21--15.11.25.png\" width=\"391\" height=\"251\" alt=\"\" \/>\n<\/div>\n<p>В Label Y2 перетягиваем поля Description и percentage_label. Устанавливаем выравнивание, Description выделяем жирным цветом, ставим галочку в Options у поля Allow labels to overlap other marks, чтобы Label был виден:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/test.leftjoin.ru\/pictures\/--2021-01-21--15.14.59.png\" width=\"498\" height=\"404\" alt=\"\" \/>\n<\/div>\n<p>Скрываем все линии, границы и индикатор, заливаем фон чёрным цветом. Результат — такая диаграмма:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/test.leftjoin.ru\/pictures\/--2021-01-21--15.17.58.png\" width=\"670\" height=\"678\" alt=\"\" \/>\n<\/div>\n<p>Книга и таблица из примера доступны в <a href=\"https:\/\/github.com\/valiotti\/leftjoin\/tree\/master\/active_rings_tableau\">нашем репозитории<\/a> на GitHub.<\/p>\n",
            "date_published": "2021-01-21T18:18:55+03:00",
            "date_modified": "2021-01-25T16:44:32+03:00",
            "image": "http:\/\/test.leftjoin.ru\/pictures\/1-20.png",
            "_date_published_rfc2822": "Thu, 21 Jan 2021 18:18:55 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "91",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "http:\/\/test.leftjoin.ru\/pictures\/1-20.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/2-19.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/3-18.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/4-10.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/6-10.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/10-6.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/11-5.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/12-3.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/13-3.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/1-21.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/remote\/youtube-w6qEG7AyDYo-cover.jpg",
                    "http:\/\/test.leftjoin.ru\/pictures\/rings.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/--2021-01-21--16.25.48.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/2-20.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/4-11.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/5-11.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/6-11.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/7-6.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/8-7.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/9-7.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/9.1.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/14-3.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/10-7.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/11-6.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/12-4.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/13-4.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/--2021-01-21--15.07.33.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/123.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/--2021-01-21--15.11.25.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/--2021-01-21--15.14.59.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/--2021-01-21--15.17.58.png"
                ]
            }
        },
        {
            "id": "88",
            "url": "http:\/\/test.leftjoin.ru\/all\/excel-bi-guide\/",
            "title": "Обзор дашборда в Excel",
            "content_html": "<p>На Excel я собаку съел: проработав много лет аналитиком, при помощи этого инструмента я автоматизировал маркетинговую отчетность, рассчитывал всевозможные репорты и рекламную эффективность, писал макросы, а однажды даже автоматизировал подключение MS Excel к базе данных Oracle через TextBox, в котором был записан текст запроса: получилась собственная SQL-консоль вроде Redash.<\/p>\n<p>В сегодняшнем видео на примере датасета SuperStore я покажу, что Excel — не просто калькулятор строк и столбцов, но и мощнейший аналитический инструмент, сопоставимый с промышленными BI-системами.<\/p>\n<div class=\"e2-text-video\">\n<iframe src=\"https:\/\/www.youtube.com\/embed\/rxu8jmsvw98\" frameborder=\"0\" allowfullscreen><\/iframe><\/div>\n<p>Внутри команды мы оценили дашборд и получили следующие средние оценки (1 — худшая оценка, 10 — лучшая):<\/p>\n<p>Отвечает ли заданным вопросам — 8,4<br \/>\nПорог входа в инструмент — 7,0<br \/>\nФункциональность инструмента — 8,0<br \/>\nУдобство пользования — 6,0<br \/>\nСоответствие результата макету — 8,4<br \/>\nВизуальная составляющая — 7,4<\/p>\n<p>Итог: дашборд в Excel получает 7,5 баллов из 10. <a href=\"https:\/\/github.com\/valiotti\/leftjoin\/blob\/master\/Superstore-Dashboard.xlsm\">Посмотрите<\/a> на полученный результат.<\/p>\n",
            "date_published": "2020-12-29T15:10:17+03:00",
            "date_modified": "2020-12-29T14:36:32+03:00",
            "image": "http:\/\/test.leftjoin.ru\/pictures\/remote\/youtube-rxu8jmsvw98-cover.jpg",
            "_date_published_rfc2822": "Tue, 29 Dec 2020 15:10:17 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "88",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "http:\/\/test.leftjoin.ru\/pictures\/remote\/youtube-rxu8jmsvw98-cover.jpg"
                ]
            }
        },
        {
            "id": "87",
            "url": "http:\/\/test.leftjoin.ru\/all\/tableau-vs-powerbi-learning\/",
            "title": "Сравнение программ обучения Tableau и PowerBI",
            "content_html": "<p>В этом году мне удалось пройти сертификацию Tableau Desktop Associate. И когда я думал о том, как к ней лучше подготовиться, я наткнулся на курсы <a href=\"https:\/\/www.tableau.com\/learn\/training\/elearning\">elearning<\/a> от Tableau, которые ещё и оказались бесплатными на 90 дней.<\/p>\n<p>Я решил, что нельзя упускать такую возможность и решил пройти все три блока Fundamentals в бодром темпе. Когда получил сертификацию мне стало интересно, какие программы обучения предлагают другие производители BI-инструментов. И первым делом пошёл изучать обучающие материалы по PowerBI. В этой небольшой статье хочу попытаться сравнить программы обучения от Tableau и PowerBI.<\/p>\n<p class=\"note\">Дисклеймер: в итоге у меня сформировалось предвзятое положительное отношение к Tableau, поэтому сторонникам PowerBI данная статья может оказаться не по нраву и в чем-то окажется субъективной (справедливости ради слова похвалы PowerBI тоже присутствуют).<\/p>\n<p>В результате изучения обучающих материалов я, пожалуй, наконец, могу сформулировать, почему я все же голосую двумя руками за Tableau как за инструмент анализа и визуализации данных.<\/p>\n<p>Прежде всего, существует огромная пропасть в подходе к материалам и проверке их понимания. Несмотря на то, что обучающие материалы Tableau носят более технический характер и в меньшей степени уделяют внимание дизайну, обучаясь через их видео, всё же можно делать отличные рабочие визуализации. Что и говорить, после прохождения всех трёх ступеней обучения Tableau появляется желание творить новые крутые отчёты с использованием всех LOD Expressions, Filter Actions и создавать удобные интерфейсы. А вот после просмотра всех материалов по PowerBI остаётся один вопрос: зачем я потратил своё время? Для объективности сравнения и те, и другие материалы я изучал на английском языке. Думаю, в индустрии это стандарт, поскольку открыв 2-3 ссылки на русском понимаешь, что переведено это пяткой левой ноги.<\/p>\n<p>Если отбросить эмоции, есть несколько ключевых вещей, которые оказались принципиальны для меня в результате изучения материалов.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/test.leftjoin.ru\/pictures\/1-18.png\" width=\"1265\" height=\"654\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Так выглядит хороший дашборд по версии Microsoft<\/div>\n<\/div>\n<h2>Качество подготовки контента и примеров в обучении<\/h2>\n<p>Если посмотреть на логику изложения обучающих видео Tableau и вопросов в формате квиза, которые задаются в конце прохождения материала, начинаешь проникаться идеей софта. Но в случае с PowerBI тебя ждёт тотальное разочарование. Взгляните, к примеру, на <a href=\"https:\/\/docs.microsoft.com\/en-us\/learn\/modules\/perform-analytics-power-bi\/3-visuals\">материал об обнаружении выбросов<\/a>, тут Microsoft предлагает построить диаграмму scatter plot и визуально определить все выбросы на глаз.<\/p>\n<h2>Дизайн отчётов и дашбордов<\/h2>\n<p>Существуют достаточно объективные придирки к обучающим материалам Tableau на тему дизайна графиков и элементов управления, но всё равно они сделаны аккуратно и красиво. А теперь взгляните на <a href=\"https:\/\/docs.microsoft.com\/en-us\/learn\/modules\/visuals-in-power-bi\/12-formatting\">тот ужас<\/a>, который предлагает в качестве результата работы аналитика Microsoft. А вот <a href=\"https:\/\/docs.microsoft.com\/en-us\/learn\/modules\/create-dashboards-power-bi\/1-introduction\">хорошо построенный дашборд<\/a> по версии Microsoft.<\/p>\n<h2>Проверка полученных знаний из обучения<\/h2>\n<p>Во время обучения Tableau ты сразу же после небольшой лекции учишься применению куска изученного материала на практике. Нужно нажать конкретные кнопки в интерфейсе, чтобы решить задачу. В PowerBI предполагаются «лабораторные работы», которые должны были запуститься с удалённой машины. Мне не удалось начать ни одну лабораторную работу, я трижды писал в саппорт, саппорт так и не смог решить мою проблему, поэтому поэкспериментировать с заданиями в PowerBI у меня так и не вышло.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"http:\/\/test.leftjoin.ru\/pictures\/3-16.png\" width=\"1279\" height=\"654\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Результат работы аналитика по версии Microsoft<\/div>\n<\/div>\n<p>Следующие пункты больше относятся к самому софту, чем к программам обучения.<\/p>\n<h2>Кроссплатформенность<\/h2>\n<p>Я давно работаю с Tableau, и 4 года назад пересел на Mac. После перехода с Windows мой опыт использования Tableau никак не изменился: по сути, Tableau развивался, а я вместе с ним, но при этом ключевые элементы интерфейса команда не меняла. Я экспериментировал с построением отчётов в PowerBI, но мне были неудобны различные архаизмы Microsoft типа публикаций через какой-нибудь share-портал, где обязательно нужно иметь учётную запись MS и настраивать что-то через администратора. Вся эта головная боль жутко утомляет.<\/p>\n<p>Однако гораздо больше меня поразил тот факт, что я не могу воспользоваться PowerBI на Mac. Вообще, совсем никак, и это принципиальная позиция Microsoft, которая в ближайшем будущем не планируется меняться. С моей точки зрения, такое программное обеспечение относится к сегменту B2B в области аналитики, предполагает подключение ко всевозможным СУБД, но отрицает факт существования альтернативной операционной системы, на которой потенциальное n-ное количество консультантов могут продвигать и использовать PowerBI как аналитический инструмент.<\/p>\n<p>Наверняка есть рациональные причины, связанные с тем, что любой софт от Microsoft не очень здорово работает на Mac, но факт остаётся фактом: для меня софт становится недоступным. Тем не менее, я не искал лёгких путей и поставил PowerBI через Parallels для того, чтобы всё-таки честно посмотреть ещё раз на инструмент с учётом обучающих материалов.<\/p>\n<h2>Опции визуализации<\/h2>\n<p>И в Tableau, и в PowerBI очень крутые опции визуализации данных. К слову, в данном разрезе PowerBI всё же предлагает видео и <a href=\"https:\/\/docs.microsoft.com\/en-us\/learn\/modules\/visuals-in-power-bi\/\">чуть больше информации<\/a>, чем обычно. Так что по этой части инструменты представлены одинаково хорошо.<\/p>\n<h2>Функциональность<\/h2>\n<p>А тут хочется отдать должное функциональности PowerBI. Действительно, багаж инструментов даже без подключения сторонних библиотек крайне широкий. К примеру, <a href=\"https:\/\/docs.microsoft.com\/en-us\/learn\/modules\/perform-analytics-power-bi\/5-clustering-techniques\">автоматическая кластеризация<\/a>, <a href=\"https:\/\/docs.microsoft.com\/en-us\/learn\/modules\/ai-visuals-power-bi\/4-decomposition-tree\">Decomposition Tree<\/a>, <a href=\"https:\/\/docs.microsoft.com\/en-us\/learn\/modules\/clean-data-power-bi\/6-profile-data\">Data Profiler<\/a> или <a href=\"https:\/\/docs.microsoft.com\/en-us\/learn\/modules\/data-driven-story-power-bi\/6-advanced-interactions\">Настройка фильтров по графику<\/a><\/p>\n<h2>Синтаксис внутреннего языка<\/h2>\n<p>Для работы с PowerBI следует выучить DAX. Это не язык программирования, а функциональный язык. Что-то своё написать не получится, но оно и не понадобится — внутри уже реализованы все функции, которыми нужно только научиться правильно пользоваться. Microsoft неплохо рассказывает про DAX в <a href=\"https:\/\/docs.microsoft.com\/en-us\/learn\/modules\/dax-power-bi-write-formulas\/\">мануале<\/a>. Определение новой меры на языке DAX выглядит так:<\/p>\n<pre class=\"e2-text-code\"><code>Revenue YoY % =\r\nDIVIDE(\r\n\t[Revenue]\r\n\t\t- CALCULATE(\r\n\t\t\t[Revenue],\r\n\t\t\tSAMEPERIODLASTYEAR('Date'[Date])\r\n\t),\r\n\tCALCULATE(\r\n\t\t[Revenue],\r\n\t\tSAMEPERIODLASTYEAR('Date'[Date])\r\n\t)\r\n)<\/code><\/pre><h2>Подготовка данных к анализу<\/h2>\n<p>Внутри PowerBI есть фича <a href=\"https:\/\/docs.microsoft.com\/en-us\/learn\/modules\/clean-data-power-bi\/2-shape-data\">Unpivot<\/a>, которая позволяет привести данные, разложенные по столбцам с временными периодами к форме, удобной для использования в сводных таблицах:<\/p>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"537\" data-ratio=\"1.7266881028939\">\n<img src=\"http:\/\/test.leftjoin.ru\/pictures\/02-original-data-ss.png\" width=\"537\" height=\"311\" alt=\"\" \/>\n<img src=\"http:\/\/test.leftjoin.ru\/pictures\/02-unpivot-ss.png\" width=\"528\" height=\"582\" alt=\"\" \/>\n<\/div>\n<\/div>\n<p>Впрочем, в ETL-инструменте для очистки и предобработки данных Tableau Prep такое тоже <a href=\"https:\/\/www.tableau.com\/about\/blog\/2019\/1\/new-tableau-prep-pivot-rows-columns-and-add-descriptions-any-change-99937 \">реализовано<\/a><\/p>\n<h2>Выводы:<\/h2>\n<p>1) Программы обучения построены совершенно по-разному, методология погружения в инструмент от Tableau намного продуманнее и эффективнее. Есть возможность сразу же получить практический опыт решения задач и получить обратную связь (хоть и автоматическую).<br \/>\n2) Дизайн отчетов и дашбордов в обучающих материалах от Microsoft выглядит едва ли профессионально, у Tableau реализация выглядит на порядок лучше<br \/>\n3) Реализация проверки знаний от Microsoft ниже плинтуса (совершенно формальные тесты как в плохой школе), у Tableau реализовано хорошо, погружаешься в задачу, думаешь над ответом и решаешь.<br \/>\n4) Кроссплатформенность явно не является коньком PowerBI, однако в случае Tableau это отличное конкурентное преимущество<br \/>\n5) Функциональность и возможности инструментов, разумеется, находятся на высоком уровне, и в чем-то победу одерживает PowerBI.<\/p>\n<p>Посмотрите наши обзоры дашбордов в <a href=\"http:\/\/test.leftjoin.ru\/all\/superstore-tableau\/\">Tableau<\/a>, <a href=\"http:\/\/test.leftjoin.ru\/all\/powerbi-guide\/\">PowerBI<\/a>, <a href=\"http:\/\/test.leftjoin.ru\/all\/datastudio-bi-guide\/\">Google Data Studio<\/a>, <a href=\"http:\/\/test.leftjoin.ru\/all\/sap-bi-guide\/\">SAP Analytics Cloud<\/a>, <a href=\"http:\/\/test.leftjoin.ru\/all\/obzor-dashborda-qliksense\/\">QlikSense<\/a>, <a href=\"http:\/\/test.leftjoin.ru\/all\/obzor-dashborda-v-redash\/\">Redash<\/a> и в других BI-системах.<\/p>\n",
            "date_published": "2020-12-25T13:05:32+03:00",
            "date_modified": "2020-12-25T14:30:26+03:00",
            "image": "http:\/\/test.leftjoin.ru\/pictures\/1-18.png",
            "_date_published_rfc2822": "Fri, 25 Dec 2020 13:05:32 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "87",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/fotorama\/fotorama.css",
                    "system\/library\/fotorama\/fotorama.js"
                ],
                "og_images": [
                    "http:\/\/test.leftjoin.ru\/pictures\/1-18.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/3-16.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/02-original-data-ss.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/02-unpivot-ss.png"
                ]
            }
        },
        {
            "id": "75",
            "url": "http:\/\/test.leftjoin.ru\/all\/datastudio-bi-guide\/",
            "title": "Обзор дашборда в Google DataStudio",
            "content_html": "<p>В <a href=\"http:\/\/test.leftjoin.ru\/all\/obzor-dashborda-v-redash\/\">прошлом гайде<\/a> по BI-системам мы рассмотрели Redash, а в этот раз поговорим о дашборде, построенном при помощи Google DataStudio. Пройдёмся по результату и посмотрим, как подключать в системе датасорсы из Google SpreadSheets или других источников, добавлять новые фактоиды, фильтры и настраивать данные и визуализации.<\/p>\n<div class=\"e2-text-video\">\n<iframe src=\"https:\/\/www.youtube.com\/embed\/GVJdt5nvhjM\" frameborder=\"0\" allowfullscreen><\/iframe><\/div>\n<p>Внутри команды мы оценили дашборд и получили следующие средние оценки (1 — худшая оценка, 10 — лучшая):<\/p>\n<ol start=\"1\">\n<li>Отвечает ли заданным вопросам — 8,7<\/li>\n<li>Порог входа в инструмент — 7,0<\/li>\n<li>Функциональность инструмента — 7,5<\/li>\n<li>Удобство пользования — 6,5<\/li>\n<li>Соответствие результата макету — 8,7<\/li>\n<li>Визуальная составляющая — 7,8<\/li>\n<\/ol>\n<p>Итог: дашборд в Google DataStudio получает 7,7 баллов из 10. <a href=\"https:\/\/datastudio.google.com\/s\/hgoUavgUdAg\">Посмотрите на полученный результат<\/a>.<\/p>\n",
            "date_published": "2020-12-16T12:02:54+03:00",
            "date_modified": "2020-12-16T11:59:28+03:00",
            "image": "http:\/\/test.leftjoin.ru\/pictures\/remote\/youtube-GVJdt5nvhjM-cover.jpg",
            "_date_published_rfc2822": "Wed, 16 Dec 2020 12:02:54 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "75",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "http:\/\/test.leftjoin.ru\/pictures\/remote\/youtube-GVJdt5nvhjM-cover.jpg"
                ]
            }
        },
        {
            "id": "83",
            "url": "http:\/\/test.leftjoin.ru\/all\/coalesce2020-dbt\/",
            "title": "Конференция Coalesce от dbt: что посмотреть?",
            "content_html": "<div class=\"e2-text-picture\">\n<img src=\"http:\/\/test.leftjoin.ru\/pictures\/Eg2IiVMX0AI1eLj.jpg-large.jpeg\" width=\"1516\" height=\"760\" alt=\"\" \/>\n<\/div>\n<p>С 7 по 11 декабря проходила <a href=\"https:\/\/www.getdbt.com\/coalesce\">конференция Coalesce<\/a>, о которой я рассказывал ранее. В этом году все организаторы решили проводить конференции по 5 дней с кучей докладов.<\/p>\n<p>С одной стороны это плюс — ощущение, что информации много и можно выбрать, что интересно. С другой стороны такое количество информации несколько изматывает, потому что часто по названию доклада не очень понятно насколько он окажется полезным и интересным. Мне все же кажется, что более трех дней для конференции это много, т. к. интерес аудитории теряется, да и необходимость заниматься своими личными и профессиональными делами не может испариться из-за события, которое хоть и в онлайне, но занимает твое внимание.<\/p>\n<p>Однако мне удалось посмотреть большую часть докладов, кое-что пролистывая. Для начала коротко в целом о впечатлениях: очень круто изучать доклады с подобной конференции как Coalesce, потому что речь идет в основном о современных инструментах и облачных решениях. Почти в каждом докладе можно услышать про Redshift \/ BigQuery \/ Snowflake, а с точки зрения BI: Mode \/ Tableau \/ Looker \/ Metabase. В центре всего, разумеется, dbt.<\/p>\n<p>Мой шорт-лист докладов, которые рекомендую изучить:<\/p>\n<ol start=\"1\">\n<li><a href=\"https:\/\/www.getdbt.com\/coalesce\/agenda\/dbt-101-eu-and-us-friendly\">dbt 101<\/a> — вводный доклад и интро в то, что такое dbt и как его используют<\/li>\n<li><a href=\"https:\/\/www.getdbt.com\/coalesce\/agenda\/kimball-in-the-context-of-the-modern-data-warehouse-whats-worth-keeping-and-whats-not\">Kimball in the context of the modern data warehouse: what’s worth keeping, and what’s not<\/a> — интересный и очень-очень спорный доклад, который вызвал массу вопросов в slack dbt. Вкратце, автор предлагает перейти на «широкие» аналитические таблицы и отказаться от нормальных форм всюду.<\/li>\n<li><a href=\"https:\/\/www.getdbt.com\/coalesce\/agenda\/building-a-robust-data-pipeline-with-dbt-airflow-and-great-expectations\">Building a robust data pipeline with dbt, Airflow, and Great Expectations<\/a> — в докладе про небезынтересный инструмент <a href=\"https:\/\/greatexpectations.io\">greatexpectations<\/a>, суть которого в валидации данных<\/li>\n<li><a href=\"https:\/\/www.getdbt.com\/coalesce\/agenda\/orchestrating-dbt-with-dagster\">Orchestrating dbt with Dagster<\/a> — мне было несколько скучновато слушать, но если хочется познакомиться с Dagster — самое то<\/li>\n<li><a href=\"https:\/\/www.getdbt.com\/coalesce\/agenda\/supercharging-your-data-team\">Supercharging your data team<\/a> — ребята сделали обертку к dbt, назвали dbt executor 9000 и рассказывают о нем<\/li>\n<li><a href=\"https:\/\/www.getdbt.com\/coalesce\/agenda\/presenting-sqlfluff\">Presenting: SQLFluff<\/a> — про очень классную штуку <a href=\"https:\/\/www.sqlfluff.com\">SQLFluff<\/a>, которая автоматически редактирует SQL-код согласно канонам<\/li>\n<li><a href=\"https:\/\/www.getdbt.com\/coalesce\/agenda\/quickstart-your-analytics-with-fivetran-dbt-packages\">Quickstart your analytics with Fivetran dbt packages<\/a> — из доклада можно узнать, что такое Fivetran и как его используют совместно с dbt<\/li>\n<li><a href=\"https:\/\/www.getdbt.com\/coalesce\/agenda\/perfect-complements-using-dbt-with-looker-for-effective-data-governance\">Perfect complements: Using dbt with Looker for effective data governance<\/a> — про взаимодействие dbt и looker, про различия и схожие части инструментов<\/li>\n<\/ol>\n",
            "date_published": "2020-12-11T13:27:14+03:00",
            "date_modified": "2020-12-11T13:27:05+03:00",
            "image": "http:\/\/test.leftjoin.ru\/pictures\/poster.png",
            "_date_published_rfc2822": "Fri, 11 Dec 2020 13:27:14 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "83",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "http:\/\/test.leftjoin.ru\/pictures\/poster.png",
                    "http:\/\/test.leftjoin.ru\/pictures\/Eg2IiVMX0AI1eLj.jpg-large.jpeg"
                ]
            }
        }
    ],
    "_e2_version": 3365,
    "_e2_ua_string": "E2 (v3365; Aegea)"
}