Splunk Certified Power Userを受けてきた

Splunk Certified Power Userを受けてきました。 どういった試験だったのか、どういう流れだったのかを残すために備忘録として残しておきます。 なぜ受けたのか 転職した先の会社の研修の一環でSplunk Certified Power Userを受けてきました。 どういった試…

Cypressでtd-js-sdkのテストをする

Tagのテストをしたい td-js-sdkをWeb Siteに設置したはいいけどテストが手動だったり、そもそもテストをしていなくてしばらく経ってから想定通りに動作してないことが発覚して修正に手間取ったりとかがわりと起こりがちである。 Cypressを使ってこういう自体…

Deno向けのTreasure Data Clientを作った話

なんとなくDenoとかTypeScriptに触りたくて、Treasure Data向けのSDKを作った。(需要があるかどうかはしらないが、作りたかったので仕方ない) ソースコード ソースコードはこちらです。使い方はexampleにもあるんですが、こんな感じです。 import { TDClient…

Treasure DataのJobの状態を監視するPromethesuのExporterを作った

経緯 Treasure DataのJobの同時実行数には上限があり場合によっては不要なJobをKillするなどの対応をする必要があるが、そもそも現状のコンソール経由だと実際にどれくらいのJobが実行中なのかがぱっと見わからない。 API経由でJobの状態を取得可能なのでと…

TreasureDataのSQLでパラメーターを使いたい

1. はじめに ここでいうSQLでパラメーターが使いたいというのは以下のようなSQLを意味します。 SELECT * from www_access WHERE code=@code 残念ながらTreasure DataのSQLは単体でパラメータ(変数)を扱うことができません。 注意: Presto自体にPrepareとExec…

GoのInterfaceについての個人的まとめ

GoのInterfaceについて A Tour of Go 上記のページからの引用だがA tour of Goでは以下のように記載されている。 interface(インタフェース)型は、メソッドのシグニチャの集まりで定義します。 そのメソッドの集まりを実装した値を、interface型の変数へ持た…

GoでのNodeの扱い方

TreeNodeの次をとる方法。 /** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */ func getDecimalValue(head *ListNode) int { curr, result := head, 0 for curr != nil { result = result<<1 result += …

Goで数値を文字列にする方法

strconvで変換する。 import ( "fmt" "strconv" ) func subtractProductAndSum(n int) int { sum, prod := 0, 1 for _, x := range fmt.Sprintf("%d", n) { xi, _ := strconv.Atoi(string(x)) sum += xi prod *= xi } return prod - sum }

Golangで配列内の重複する値を調べる方法

辞書型のデータを作って、Keyに配列の値をいれる。 それをforでincrementしたらそれぞれが何個入っているかがわかる。 func repeatedNTimes(A []int) { list:= make(map[int]int) ln:=len(A) for _, val:=range A { list[val]++ } } fmt.Println(list) }

vimまとめ

vimオープン中にファイルを開く方法 :e <filename> editのe 単語の先頭に移動する w wordのw 単語の最後に移動する e endのe 前に戻る b backwardのb</filename>

JSONをTreasureDataにスムーズにいれたい

TreasureDataを利用していて一番むずかしいのがJSONファイルの扱いである。 以下のタイプのようなJSONファイルを入れることは簡単だ。 そのままDataConnectorのJSON parserを使ってくれればいい。 { "name": "Tanaka", "age": 26 } { "name": "Suzuki", "age…

Hive/PrestoでのJSONの展開方法

Hiveでのjsonの展開方法についてのメモ こんなJSONを無邪気に入れてしまっていないだろうか。 [{"key":"k1","value":"v11"},{"key":"k2","value":"v12"}] さてこのデータをこんな感じのテーブルに展開したいが、どうしたらいいのだろうか。 配列で入ってれば…

Treasure DataにおけるBulk Importの種類について

TreasureDataにデータを入れる方法について 大まかに以下の2種類が存在する。 Streaming Import Bulk import Streaming Importってなに fluentdやjs-sdkなどを利用して、リアルタイムで生成されているデータを転送する方法。 1回あたりにインポートされるレ…

サポートへの質問の仕方について思うこと

サポートってなんだ サポートの仕事を始めておおよそ半年。 その中で感じたことを思うままに綴るポエムです。 サポートって何だ? サポートは顧客の技術的な課題を解決するロールである。 ソリューションアーキテクト(以下、SA)やプロフェッショナルサービス…

Prestoについての個人的まとめ その1

いわゆるビッグデータを解析するときに使うツール(DWH)といえばどんなものがあるだろうか? 私見ではあるが以下のものが使われるのが一般的ではないだろうか。 BigQuery RedShift Hive Presto 今回は上記の中からPrestoについての特徴について個人的なメモを…

Embulkの使い方について

はじめに 目的 現在の会社ではEmbulk関連の問い合わせを受けることが多い。この記事は自身の備忘録を兼ねて書いている。 Embulkって何? EmbulkはFluentdやMessage Packで有名な古橋さんが開発した、バルク処理用のOSS。Fluetdだと細かくデータを転送するの…

GDC参加の感想

GDCについて 参加セッションの概要 現在のゲーム開発トレンド 感想 GDCについて GDCとは世界最大のゲーム開発者の祭典の事である。 例年、サンフランシスコのmoscone centerで開催される。 詳細については、公式サイトを参照してください。 www.gdconf.com …

VPC内のEC2のDNSを変更する方法

まず基本的にVPC内のEC2インスタンスはAWSのDNSが設定されている。 VPNやDirectConnectでつないでいるAWSの環境のサーバーがオンプレミスのDNSサーバーを使いたいときがある。 今回はそういったときに必要な手順についての説明 2. VPCのDNS設定について 公式…

Terraformを社内の人に使ってもらえるように準備している話

社内でInfrastructure as Codeの推進活動をしており、TerraformなどのOSSを社内に浸透させたいと思っている。 それにあたって課題になっているのがProxyの問題だ。 Terraformを社内の開発環境にインストールして利用することを考えていたが、途中で問題にぶ…