タグ

ブックマーク / dev.classmethod.jp (19)

  • 手順書を書くときに気をつけていること | DevelopersIO

    最近、たまに調理器具などが行方不明になっているかめです。 子どもの世話などをしている時に、パパが洗い物をしてくれる機会が増えたので、私にとっての定位置とは違うところに遊びに行っているようです。 複数人で何かをする時には、認識合わせが重要ですね。 はじめに 手順書といえば、弊社には植木さんという神がいて、 【社内資料公開】運用手順書を作る時のポイントについて書いてみた | DevelopersIO なんて神記事もあります。 二番煎じのようで恐縮なのですが、産休から復帰してチーム内の手順書を眺めて見たところ、複数人で更新しているため、それぞれの気をつけているポイントが違い、なんだかキマイラのような手順書に進化していたので、まずは、私が気をつけているポイントを発信して、チームとしてみんなで気をつけるポイントを相談してみようかなーと思い、この記事を書くことにしました。 せっかくだから、大変になりす

    手順書を書くときに気をつけていること | DevelopersIO
  • Amazon Athena ユースケースで学ぶデータ分析環境のCTASクエリ活用 | DevelopersIO

    CTASクエリをSQLで作成するとより詳細なオプション指定が可能であり、コードの変更管理という観点でも有用です。今回は前回書ききれなかった、データ分析環境で使うCTASクエリでSQLで作成する様々なユースケースについてご紹介します。さらに実用性がどうかを確認するため、約24.6GBファイル(GZIP)をParquetに変換するヘビーな検証実施しました。 はじめに 先日はダイアログベースでCTAS(CREATE TABLE AS)クエリを自動生成して、テーブル作成する方法をご紹介しました。CTASクエリをSQLで作成するとより詳細なオプション指定が可能であり、コードの変更管理という観点でも有用です。今回は前回書ききれなかった、データ分析環境で使うCTASクエリでSQLで作成する様々なユースケースについてご紹介します。さらに実用性がどうかを確認するため、約24.6GBファイル(GZIP)をPa

    Amazon Athena ユースケースで学ぶデータ分析環境のCTASクエリ活用 | DevelopersIO
  • Amazon Athena のPartitioningとBucketingによるパフォーマンス戦略 | DevelopersIO

    はじめに 先日ご紹介したAmazon AthenaのCTASサポートで、出力ファイルのBucketingとPartitioningに対応しました。BucketingとPartitioningは、相反するものではなく、必要に応じて組み合わせることでパフォーマンスの改善が期待できます。日はBucketingとPartitioningの具体的なユースケースとパフォーマンス戦略について解説します。 Amazon Athena が待望のCTAS(CREATE TABLE AS)をサポートしました! PartitioningとBucketingの解説 Partitioningとは Partitioningとは、データを指定したキーごとにファイルにまとめてグループ化します。指定したキーのことをパーティションキーと呼びます。一般的なDBのパーティショニングと概念は一緒ですが、Hiveのパーティショニング

    Amazon Athena のPartitioningとBucketingによるパフォーマンス戦略 | DevelopersIO
  • Elasticsearch Field Collapsing | DevelopersIO

    Elasticsearch 5.3 がリリースされましたね。今回はその New feature の中で、Field Collapsing について紹介したいと思います。 Field collapsing と言えば、Top hits aggregation が思い浮かぶ方も多いかと思いますが、今回リリースされた New Field collapsing の機能は Aggregation ではなく、検索結果そのものを折りたたむことができます。 検索系の機能名称では、Collapse Search / Field collapsing / Result grouping と言ったりしますが、一般的に日語では何って呼ばれてるのだろう?折りたたみ検索? 指定されたフィールドの値を使って、検索結果の重複を排除するような機能です。 ユースケース例 例えば、EC サイトの商品検索で、カラーやサイズなどの

    Elasticsearch Field Collapsing | DevelopersIO
  • Amazon Athena のクエリ結果を SPICE にインポートして、 QuickSight で可視化する | DevelopersIO

    こんにちは、藤です。 先日、QuickSight のデータセットに Amazon Athena の対応が追加されました。弊社ブログでもせーのが紹介しました。 Amazon QuickSight adds support for Amazon Athena 【新機能】Amazon QuickSightAmazon Athenaをサポート! この機能を使って、昨日、ELB のアクセスログをいくつかの視点から可視化して、解析した時の知見です。 Amazon Athena と QuickSight の連携 まず、前提として、ELB のアクセスログのような非構造化データを QuickSight で可視化したい場合、一度、構造化データにした上で、QuickSight のデータセットに取り込む必要があります。そこで AWS re:Invent 2016 でリリースされた Amazon Athena

    Amazon Athena のクエリ結果を SPICE にインポートして、 QuickSight で可視化する | DevelopersIO
  • 新機能 AWSCLIから Amazon Athena のクエリを実行する | DevelopersIO

    昨日、以前から要望の多かった AWSCLI から Amazon Athena のクエリ実行する機能がリリースされましたので、早速試してみました。 Amazon Athena adds API/CLI, AWS SDK support, and audit logging with AWS CloudTrail 今回のリリースでは、AWSCLIの他に Java, .NET, Node.js, PHP, Python, Ruby, Go, 及び C++ で利用可能な AWS SDK を使用して、REST API 経由で Amazon Athena からもクエリを実行できるようになりました。詳細については、APIリファレンスおよびCLIガイドを参照してください。 サポートされた機能 ペタバイトクラスのクエリ実行も想定した Amazon Athena なので、クエリ実行は、「クエリの非同期実行〜ク

    新機能 AWSCLIから Amazon Athena のクエリを実行する | DevelopersIO
  • Amazon Athenaのパーティションを理解する #reinvent | DevelopersIO

    コンニチハ、千葉です。Amazon Athenaを利用する上で重要になってくるパーティションについて書きたいと思います。 パーティションの重要性 Athenaでパーティションを指定することで、各クエリで特定の領域に対するスキャンを実行できるようになります。例えば、S3上のデータがs3://applog/YYYY/MM/DD/HHのような形でS3へ保存するとします。 パーティションを指定することで、検索時に特定の日付配下のデータだけスキャンすることができるので、パフォーマンスが向上します。また、スキャンするデータ量も減るため、コストも削減できます。 パーティションを設定する パーティションを設定するには、テーブル作成時にPARTITIONED BYを指定して分割するキーを指定します。パーティションを追加する場合、以下の2つのシナリオがあります。 S3上に格納されているデータが既にHiveフォ

    Amazon Athenaのパーティションを理解する #reinvent | DevelopersIO
  • KibanaのTileMapにOpenStreetMapを利用する | DevelopersIO

    こんにちは、藤です。 先日、同僚にKibanaのTileMapでもっと詳細なマップが表示できないか聞かれたので調べてみました。 MapQuestの利用不可 衝撃だったのですが、先日 Kibana の TileMap へアクセスしたところ、↑のような画面表示となっていました。同じ衝撃を受けた方も多いかと思います。 今まで Kibana は MapQuest が提供するTileサービスのAPIを利用していましたが、2016年7月11日を持って、MapQuest が API の提供を終了しました。それにより Kibana 4.5.2、4.1.9 以前の Kibana は TileMap にて地図を表示できなくなっています。 Elastic社はこの問題に対処するためにElasticアプリケーションのみで利用可能な Tileサービスの提供を開始し、4.5.3、4.1.10 からそちらを利用するよう

    KibanaのTileMapにOpenStreetMapを利用する | DevelopersIO
  • 様々なファイルをデータソースにElasticsearchへデータ投入する | DevelopersIO

    はじめに 藤です。 Elasticsearchにデータ投入する方法を調べる機会がありましたので、今回はいくつかのファイルをデータソースにElasticsearchへデータ投入する方法をご紹介します。 概要 Elasticsearchはリアルタイムデータ分析、ログ解析、全文検索など様々なユースケースで活用することができます。例えば、Excelでデータ蓄積して、グラフ化・集計を行っているのであれば、Elasticsearchにデータ投入して、Kibanaで可視化することができます。ログをSyslogで集約して、grepやawkを駆使してパフォーマンス解析しているのであれば、logstashやfluentdなどでメッセージ解析し、Elasticsearchに集約、Kibanaで可視化することができます。ブログサイトの記事をDBに投入していてアプリケーションによって検索処理ロジックを実装している

    様々なファイルをデータソースにElasticsearchへデータ投入する | DevelopersIO
  • Apache Drill 1.0がリリースされたのでAmazon S3と連携してみた | DevelopersIO

    はじめに Apache Drill 1.0がリリースされました! Drill 1.0 Released Apache Drillは、NoSQL向けのSQLクエリエンジンで、ファイルシステム上のJSON/CSV/Parquetなどのファイル、Hiveソース、HBase、MongoDBなどに直接SQLクエリを投げることが出来ます。 何はともあれ、触ってみないとどんなモノなのかわかりません。早速試してみました! やってみた 試した環境はEC2(on Amazon Linux 2015.03)です。 セットアップ Drillの動作にはJDK 7が必要になりますので、インストールされていることを確認します。 $ java -version java version "1.7.0_79" OpenJDK Runtime Environment (amzn-2.5.5.1.59.amzn1-x86_64

    Apache Drill 1.0がリリースされたのでAmazon S3と連携してみた | DevelopersIO
  • データ構造について – AWSで始めるElasticSearch(4) | DevelopersIO

    はじめに @smokeymonkeyです。ここまで「とにかくElasticSearchをAWS上で動かす」ことを中心に調べてきました。ここで一度ElasticSearch自体の構造について整理したいと思います。 ElasticSearchの構造 ElasticSearchは大きく以下のようなデータ構造になっています。 index ... その名の通り索引です。このindexに検索対称のドキュメントを格納します。Indexは複数もつことが出来ます。 type ... 格納するドキュメントを種類によって分別することが出来ます。同じfieldリストを持つdocmentの集合体であり、データベースで言えばテーブルに相似します。 document ... 格納されたドキュメントです。また個々のドキュメントの識別子をidと呼びます。ドキュメントは1つ以上の項目(field)を持ち、データベースで言えば

    データ構造について – AWSで始めるElasticSearch(4) | DevelopersIO
  • Amazon Route53の新機能 ELBをHealth Checkのターゲットにしてみた | DevelopersIO

    ども、大瀧です。連投します。 今朝がたリリースされた、Route53の新機能(Amazon Route 53 on 2013-05-30)を早速試してみました! 従来のRoute53フェイルオーバー機能、設定方法については、福田さんの記事を参照ください。 Route53の新機能とは 従来、Route53ではEC2インスタンスにHealth Checkを行い、EC2が不調の場合にDNSレコードを書き換えるDNSフェイルオーバー機能がありました。以下のようなイメージです。 ただ、Health Checkのターゲットには、ELB(Elastic Load Balancing)が指定できないという、痛い制限がありました。今回のアップデートは、ELBをHealth Checkのターゲットにできるというものです。 あれ、ちょっと待ってください。Health Checkって、元々ELBがバックエンドのE

    Amazon Route53の新機能 ELBをHealth Checkのターゲットにしてみた | DevelopersIO
  • Chef を始める #2 – Chef Server に Node を追加して Recipe を実行する | DevelopersIO

    前回 は、Chef Server のインストールと、Workstation のセットアップまで行いました。 今回は、Node を Chef Server に登録して Recipe を実行するところまでやってみたいと思います。 Node の準備 新たに Node 用の EC2 インスタンスを立ち上げ、セキュリティグループで ssh を許可しておきます。 OS は Amazon Linux、インスタンスタイプは t1.micro で試しました。 Chef Client のインストール EC2 にログインしたら、最初に Chef Client をインストールします。 前回は、RubyGems を使ってインストールを行いましたが、以下の方式でもインストール可能です。 $ sudo true && curl -L https://www.opscode.com/chef/install.sh | s

  • CloudWatchのカスタムメトリクスでFreeMemoryMBytes、UsedMemoryPercent、LoadAverage、Stealを取得 | DevelopersIO

    CloudWatchのカスタムメトリクスでFreeMemoryMBytes、UsedMemoryPercent、LoadAverage、Stealを取得 CloudWatchで取得できること CloudWatchはAWSの様々な情報を監視して統計を取ってくれるサービスです。概要については以前ご紹介しました。今回は、標準で提供されていない統計データを登録して取得してみます。いわゆるカスタムメトリクスというやつです。 カスタムメトリクスを取得する方法 今回のカスタムメトリクスで取得する値は以下の4つです。 空きメモリー容量(FreeMemoryMBytes):メモリーが少ないからといってメモリ不足とは限らない メモリー使用率(UsedMemoryPercent):使用メモリーを合計メモリーで割った割合 ロードアベレージ(LoadAverage):システムへの平均負荷 スチール(Steal):C

  • 【小ネタ】Chromeのローカルセキュリティポリシーの回避 | DevelopersIO

    こんにちは。ともだです。 Chromeではセキュリティの関係でローカルファイルからローカルファイルの読み込みができなくなっています。(Chrome5からの仕様ですね) ひとまずサーバ立てずにhtmlをローカルで動作確認しようとした事がある人なら結構おなじみの現象かと思います。 これを回避するには、Chromeの起動オプションに「–allow-file-access-from-files」を付ければ良いわけですが、winの場合にはアプリのショートカットアイコンのコンテキストメニューからプロパティを開いてショートカットタブのリンク先にchrome.exeに続いて「–allow-file-access-from-files」を入力します。このショートカットを使えばローカルファイルからローカルファイルの読み込みができます。 で、macの場合にどうするか迷う人が結構いるみたいなのでメモ書きしておきま

  • ScalaでAndroidアプリケーションを作る | DevelopersIO

    はじめに Androidアプリケーションを開発するための言語はJavaです。(NDKでC/C++使ったりもできますが) しかしAndroidの普及にともなって、さまざまな手法でAndroidのアプリケーションを開発することができるようになりました。 いろいろと実装する手法はありますが、今回はScalaを用いてAndroidアプリケーションを動かす方法をご紹介します。 今回使用した動作環境は以下のとおりです。 OS : MacOS X 10.7.3 パッケージマネージャ : Homebrew 0.8.1 ScalaAndroidアプリケーションを作る ではScalaAndroidアプリケーションのひな形を作成し、エミュレータで動かしてみましょう。まずは環境の構築です。 必要なソフトウェアはHomebrewでインストールします。 1.必要なものをインストール Android SDK,Sca

  • Scalaで並行処理#4 – AkkaのFault Tolerance(耐障害性) | DevelopersIO

    Supervisorによる耐障害性 Akkaでのエラーや障害に対する対処は「let it crash」というアプローチをとっています。 この考え方は障害は発生しうるものという前提に基づき、障害が発生したらプロセスを適切に再スタートさせるという考え方です。 そのためにAkkaではSupervisorとよばれるものがActorを管理し、監視対象のActorに障害が発生した際、 プロセスを再スタートさせ、プロセスを生かし続けます。こうしてAkkaは耐障害性を確保しています。 Supervisorが行う再スタート方法 AkkaのSupervisorは二種類の再スタート方法を持っています。 1.One-For-One 管理対象のうちいずれかのプロセスがクラッシュしたら、その対象のコンポーネントのみを再スタートさせます。 2.All-For-One Supervisorも含む、管理対象のうちいずれかの

    Scalaで並行処理#4 – AkkaのFault Tolerance(耐障害性) | DevelopersIO
  • Play framework | Developers.IO

    PlayFrameworkのCSRF tokenの実装について調査してみた 記事 2017年10月24日 佐々木一洋 14 はじめに こんにちは、今年1番の楽しみだったブレードランナーが今週末に迫り待ちきれない佐々木です。 今回はPlayFramework(以下Playと略します)のクロスサイトリクエストフォージの対策の実装の詳細について調査 […]

    Play framework | Developers.IO
  • Clojure Scriptを使ってみる | DevelopersIO

    Clojure Scriptとは 先日、Clojure Scriptという技術が発表されました。 Clojure Scriptとは「Clojureで書くことができるJavaScript」です。 Coffee Scriptと同じように、Clojureで記述したファイルをコンパイルしてjsファイルに書き出します。 Clojure自体よくわからない人もいらっしゃるかと思いますので、順番に説明していきます。 Clojureとは? みなさんはClojure(クロージャー)という言語をご存知でしょうか? Clojureとは、JVM上で動作するLISP系の言語です。 最近はHerokuでサポートされたりして、知名度があがりつつある言語です。 Clojure言語自体の説明については、Clojure公式サイト※1や、Clojure入門記事※2などを参照してみてください。 Google Closureとの関係

  • 1