地方エンジニアが実践するアウトプット継続のための2つの戦略
7月25日(木)に仙台の「タガヤス:東北のITを盛り上げて行きたい!」という志のもと集まった団体で『好きな技術の学び方(ナレッジのI/O)』というテーマで1セッション担当することになりました。
はじめは「へー、ちょっとおもしろそう」みたいな感じだったのですが、改めて私の情報発信・アウトプット戦略の棚卸ししたら少し面白いかもなぁと思いながら、これをまとめています。
誰に向けて?
これはあくまで「私」の経験と考え方に基づく、より良い「学び方」「情報発信」「アウトプット」、そして「継続」のための戦略です。それは私が考えるエンジニアとしての生存戦略でもあります。
なので身近に存在している一般的(?)な地方エンジニアの一例として聞くのが吉ですが、なかなかアウトプットを継続できない、アウトプットがうまくできない、と悩んでいる方の一助になればとも思い書いています。なのでどちらかといえば、若手エンジニアや新入社員向けだと思います。
ちなみに、私がどんなアウトプットをしているのか、は以下の記事でざっくりまとめています。
続きを読むDynamics 365 / CDS ActivityLog(活動ログ)を触ってみる:June 2019 Monthly Update
Dynamics 365 Monthly Update-June で Activity Log(活動ログ)というものが追加されていました!
結構面白い機能なので、記事として残しておきたいと思います。
続きを読む新しいデータ可視化ソリューション「Reveal」を使ってみた(#Dynamics365 for CE に接続)
UIコンポーネントベンダーであるインフラジスティックス(https://jp.infragistics.com/)から新しいデータ可視化ソリューション「Reveal」の提供が開始されました!
他のデータ可視化ツール(BIツール等)とは違って、自社サービスやアプリケーションに組み込むことを前提に提供されているのが、大きく違う点ですねー!(ここはすごくインフラジスティックスさんらしい。)
どんなソリューションなのか、実際にWeb上で触ってみることができたので、記事としてまとめてみました。
公式サイトは以下から。ここからトライアルも可能です。
ちなみに、今回の記事では組み込みではなく、シンプルにWeb版で提供されているアプリケーションとしてどんな感じのものか触ってた記録になります。でも、これだけでも組み込んだ時のイメージが結構湧きますね。
なお、日本ではインフラジスティックスジャパン主催のイベント「Distinct 2019」で正式発表になるみたいです。(と言いながら、このBlogを書いている数時間後に開催です)
続きを読む#decode19 に参加&登壇してきましたレポート
年に1回開催される Microsoft の技術者向けカンファレンスであるdecode 2019 に参加&登壇してきました!
https://www.microsoft.com/ja-jp/events/decode/2019/default.aspx
本当は去年 CData Software Japan のスポンサー枠で出展・登壇する予定だったのですが、私用で急遽参加できなくなっていたので、リベンジも兼ねて行ってきました!
- 私のセッション:誰のための API?
- 私が参加したセッション:1日目
- 私が参加したセッション:2日目
- おわりに
LogicAppsでHTTPコネクタを使う時、SwaggerSpec(OpenAPI)を挟むと楽ができるよというお話
SwaggerってなんとなくAPIを開発する側やAPIを使ってプログラミングする側が嬉しいよねー、っていうシチュエーションで語られることが多いと思うんですが、今ローコードな界隈でも結構役立ちます。
Swagger なにそれ? みたいな方は以下の記事をどうぞ。
その一例がMicrosoftが提供している「LogicApps」での活用です。
https://azure.microsoft.com/ja-jp/services/logic-apps/
LogicAppsではフローチャートを描くようにGUIベースでデータ統合処理を開発することができる、PaaS基盤です。
標準のHTTPコネクタはこんな感じ
LogicAppsは標準でも数多くのSaaS・クラウドサービス・DBに接続するためのコネクタが提供されていますが、標準提供以外のWeb APIなどと連携するために「HTTP」コネクタが用意されています。
コネクタを開くと、おそらくPostmanなどを普段使う人にとっては馴染み深い画面が表示されます。 「あー、Method選んで、URI書いて、ヘッダー書いて、URLパラメータとしてクエリ書けばいいのね。ふむふむ」みたいな人はこれで済みますが、そういったことに馴染みが薄い人はなかなか大変です。
(知っている人でもちまちまドキュメントからコピペしてくるのは面倒だと思う)
せっかくなのでこのAPIを通じてCustomer情報を取得して、Dynamics 365 に取引先担当者を作るための処理をGIF動画に撮ってみました。
URLやヘッダー、パラメータを手打ちしなければいけず、また取得した本文も一度JSON解析をしなければいけないのが若干面倒ですね。(慣れてしまえばそんなことも無いかもだけど)
そこで HTTP + Swagger を使おう
そこで、Swagger ベースで公開されている API であればさくっとHTTPリクエストが使えるようになる「HTTP + Swagger」を使ってみます。
今回使うAPIは以下のとおりです。顧客情報であるCustomerリソースを取得・作成・更新・削除するエンドポイントを備えています。
https://decodeapiserverdemo.azurewebsites.net/api.rst
このAPIの作り方は、以下のURLから。
このAPIではSwaggerで作られているのと同時にSwagger Specを取得するためのエンドポイントもサポートしています。以下のURLでアクセス可能。
https://decodeapiserverdemo.azurewebsites.net/api.rsc/@1q0E5n7v8V1k4r1U5g0e/$swagger
これを「HTTP+Swagger」に取り込むと
こんな感じで、APIの機能をリストアップ
URLパラメータや認証処理なんかもさくっと選択して入力することができます。
また予めレスポンスオブジェクトのフォーマットがわかっているのでそのままValueを取り出して、値を設定することができます。
注意点
Swaggerを取り込むためのURLはCORSが許可されていないとLogicAppsがアクセスできないです。
もし、CORSが許可されていない場合は、Azure Storeageに配置してCORSを許可する方法があります。(ただちょっと面倒か)
Reference
Slack の利用状況を可視化して見えてくるものってなんだろう? Power BI と CData Slack Connector で利用状況レポートを作る方法
最近Twitterでこんなご意見をもらいました!
Slackの社内利用状況レポートとかPowerBIやらExcelからライブデータにアクセスして作れるSlackドライバーがリリースされたようです。
— あんじゅ (@Schwarze_ask) May 8, 2019
めちゃくちゃ欲しい…。#Slack https://t.co/JeZFkZM2hn
社内利用状況レポート! なるほど!
最近はビジネスチャット戦国時代ですもんね。Slackを筆頭に、TeamsやChatWork、LineWorkなど、どんどんサービスが増えて、盛り上がっているなーと感じます。
ただ、導入したとしても、うまく活用されているのかってやっぱり気になりますよね。もっと有効活用されるには、もっとコミュニケーションが活発になるにはどうしたらいいのか? いろんな会社・コミュニティで試行錯誤しているのかなとも感じています。
そこでやっぱりひとつの指針として(サブスクリプションサービスにお金を払っているなら尚更)、利用状況というのは可視化したいというニーズは強いのでしょうね。
でも実際のところ利用状況レポートってどうなの? 役立つの?
ただ、私自身実際にデータは取れることは理解していても、Slackのデータを分析することで見えてくるものが本当にあるのか? ってわからなかったんですよね。
そこで今回は、Slackをベースにチャットツールからのデータの取得の仕方だけでなく、実際にレポートとして作成したものを紹介して、どんな情報が可視化できるのか!? 試してみた結果をお届けします。
また、チャットツールって結構会社さんごとに使い方にばらつきがあるのではないかと思っているので、SNSを通じて、みんなが使っているSlackの状況を共有してもらおうと考えています!
いい感じに協力してくれた方のレポートが集まったら、それをまとめた記事+勉強会での発表もしようかなと考えていますので、是非ご協力いただければと思います!
こんなレポートが出来上がった!
早速ですが、作成した Slack 利用状況レポートを紹介したいと思います。
今回はなんと Microsoft Power BI MVP の清水さんに協力頂いてレポートを作成してもらうことができました!
こんな感じのレポートです! 接続先は清水さんがイベントの管理などで利用しているSlackとのこと。
Messages数の偏りやチャネルごとの投稿状況、時間帯別の投稿状況が可視化されていて、面白いレポートに仕上がっています!
そのSlackの役割にもよるかもしれませんが、メインのチャネルが固定されていて、ユーザー投稿にもかなり偏りがあることが見て取れます。
私は勝手に、チャネルごとにみんなバラバラ投稿しているんじゃないかなと思っていたりしたのですが、やはりSlackごとに特色があるものですねー。
ちなみに、以下のURLでReportのテンプレートの使い方を公開しています!
是非試してみてください! そしてよかったら、Poewr BI Facebook Groupかツイッターで流してもらえると、みんなで比較ができるので、いろんな考察が捗るのではないかと思っています。
Slackのデータはどうやって取得するの?
それでは実際にレポートを作るためのデータ取得方法を解説したいと思います。
Slackのデータは現状Power BI に標準のコネクタが無いので、基本的には Web API 経由で取得しないといけません。ただ、認証だったり、取得したJsonのパースだったり、テーブル形式に直したりと、手間がかかることが多いので、CData Slack Power BI Connectorを使って、楽をします。
https://www.cdata.com/jp/drivers/slack/powerbi/
こちらのページから「ダウンロード」をクリックして、評価版を入手してみてください。
継続的にデータを分析するのであれば製品版が必要ですが、一回きりの取得であれば、機能差は無いので評価版で大丈夫です。
ダウンロード後、インストーラーが起動するので、そのまま次へ進めていきます。
インストールが完了すると、以下のように接続設定の画面が表示されます。
特に入力は不要で、そのまま「接続のテスト」をクリックすればOKです。
すると、以下のようにOAuthの承認画面が表示されるので、内容を確認の上「許可する」をクリックしてください。
以下のような画面が表示されれば接続OKです。接続画面もそのままOKをクリックして閉じます。
Power BI でのデータ取得方法
それでは、Power BIからSlackのデータを取得してみます。
まずは手軽にチャンネルの一覧から。
CData Power BI Connectorのインストールが正常に完了していると、データを取得の一覧で、以下のようにCData Slackのアイコンが追加されます。これを選択して、「接続」をクリックします。
最初にサードパーティサービスの確認が出てくるので、そのまま続行をクリック
Data Source Nameを選択(1種類しか無いはずです)して、OKをクリックします。ちなみに、CData Power BI ConnectorはSQLでSlackのデータが取得できるようになっているので、SQL Statementのところに「SELECT * FROM hogehoge」と書いてもデータが取得できますが、それは後ほど。
ナビゲーターの画面では、取得できるテーブルの一覧が表示されるので、Channelsを選択して、読み込みます。
すると、こんな感じでチャンネルの一覧が取得できます。
Messageの取得方法
Messageの取得方法は若干特殊です。
もともとSlackのAPIでは、Messageの取得処理にChannelIdが必要となっているので、CData Power BI Connectorを使う場合も、ChannelIdをWhere句で指定する必要があります。
今回はすべてのチャネルからメッセージを取得したいので、Power Queryを使ってこれを実現します。
新しくデータを追加するため、「クエリの編集」をクリックし
「空のクエリ」を追加します。
詳細エディタを開いて、以下のようなクエリを追加します。
let Source = "CData Power BI Slack", ChannelsQuery = "select * from Channels ", MessagesQuery = "select * from Messages Where ChannelId = '", Channels = CData.Slack.DataSource(Source, null, [Query = ChannelsQuery]), ChannelRecoreds = Table.Column(Channels,"Id"), AllData = Table.Combine( List.Transform( ChannelRecoreds, each CData.Slack.DataSource(Source, null, [Query = MessagesQuery & _ & "'" ]) ) ) in AllData
やっていることは単純で「select * from Channels」で取得してきたチャネル一覧を元に、「"select * from Messages Where ChannelId = 」で各チャネルからメッセージを取得しています。
これで、以下のようにメッセージ一覧が取得できます。
あとは取得したデータのリレーションを構成して、レポートを作成できる環境が整います。
おわりに
Power BI で Slack の利用状況を可視化しよう!How to use Power BI Template & CData Power BI Connectoer
この記事では、Power BI Slack 利用状況可視化レポートの使い方を解説します。
実行すると、自身のSlack環境に接続でき、以下のようなレポートが自動で表示されます!
レポートは初期状態でチャネル名やユーザー名を伏せた状態になるので、このままキャプチャしたものを公開してもSlack内の情報が漏れることは無いので安心してください。
Report のTemplateは以下のURLから入手できます。
https://s3-ap-northeast-1.amazonaws.com/cdatajbuilds/sugimototest/SlackPowerBI.zip
Power BI Report Templateの作成には、Power BI の Microsoft MVP である清水さんにご協力いただきました! ありがとうございます!
清水さんは他にも様々なレポートを公開しています。是非見てみてください。
必要なもの
実施にあたり必要なものは以下のとおりです。
Power BI Desktop ※古いバージョンの場合、Templeateが利用できない可能性があるため、最新バージョンをインストールしてください。
Power BI Slack Report Template(こちらからダウンロード https://s3-ap-northeast-1.amazonaws.com/cdatajbuilds/sugimototest/SlackPowerBI.zip)
CData Power BI Slack Connector (https://www.cdata.com/jp/drivers/slack/powerbi/)
Slack アカウント
注意事項
無償版 Slack の場合、1環境に登録できるアプリが10までとなっているため、すでに10個アプリを接続している場合は、使用することができません。
無償版Slackの場合、取得できるメッセージの上限が10,000件までです。そのため、チャネルによっては、
1. CData Power BI Slack Connector のダウンロード・セットアップ
まず Power BI から Slackに接続できるようにするために、CData Power BI Connector を入手します。
以下のURLから30日間のトライアル版がダウンロード可能です。機能制限は無いため、今回はそのまま利用できます。
https://www.cdata.com/jp/drivers/slack/powerbi/
ダウンロードをクリックし
「ダウンロード評価版」を選択します。
必要情報を入力して、「ダウンロード」をクリックしてください。
ダウンロードした、インストーラーはそのまま次へ次へと進めれば、完了します。
2. Slack への接続設定
インストール後、以下のような画面が立ち上がるので、特に何も入力せず「接続のテスト」をクリックしてください。
(ProxyServerなどを経由したい場合は別途設定ができます。わからないことがあれば、私のTwitterやFacebookまでどうぞ。@sugimomoto)
「接続のテスト」をクリックすると、OAuth認証処理が開始されるので、ログインするSlackのアカウントを選択した後、接続の許可を行います。
最終的に以下のような画面が表示されれば、接続構成はOKです。
3. Report Template を立ち上げる
最後にダウンロードした Report Template を開きます。
立ち上げるとODBCの接続情報入力が表示されるので「CData Power BI Slack」と入力します。(※スペースなどに気をつけてください)
すると、先程接続構成を行ったSlackからデータの取得処理が開始されます。
取得が完了すると、以下のようにレポートが表示されます。
4. よかったら Facebook や Twitter でシェアしてください。
Facebook で Power BI Groupがあるので、是非投稿してください。