- 投稿日:2019-11-24T20:52:19+09:00
Treasure Dataでcsvファイルをimportする方法(Mac)
背景
Treasure Dataにcsvファイルをimportする際にかなり手こずったのでここに書いておきます。
検索しても一連の流れを書いていてパッとわかりやすいものがなかったので、、、目的
Treasure Dataにcsvファイルをimportする方法を説明。
今回は自分のやり方を書き記します。やること
- JDKのインストール
- embulkのインストール
- TDコマンドのインストール
- TDコマンドの実行
- 終わり
JDKのインストール
- JDKが入っているかチェック
ターミナルを開き
java -version
と打ち込みます。
↑の場合はインストールされていません。
- JDKのインストール
ちなみに、バージョン8より上はまだ対応していないので気をつけましょう。
バージョン:Java SE 8
Product:Mac OS X x64
を選択しましょう。
https://www.oracle.com/technetwork/java/javase/downloads/index.html?ssSourceSiteId=otnjpクリックするとアカウント認証を求められるので持ってなければ作成しましょう。
過去バージョンをインストールする際には必要みたいです。
- では、インストールされていることを確認しましょう。
embulkのインストール
下記のコマンドをターミナルに打ち込めばOKです。
curl --create-dirs -o ~/.embulk/bin/embulk -L "http://dl.embulk.org/embulk-latest.jar"
chmod +x ~/.embulk/bin/embulk
echo 'export PATH="$HOME/.embulk/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
embulk gem install embulk-output-td
詳細は公式ドキュメントにあるのでどうぞ。
https://support.treasuredata.com/hc/en-us/articles/360001495428-Bulk-Import-from-CSV-filesTDコマンドのインストール
↓TDコマンドを使用するためにはこちらをインストールして初期設定が必要です。(初期設定はここでは割愛)
https://toolbelt.treasuredata.com/TDコマンドの実行
↓TDコマンドの公式ドキュメントになります。
https://docs.treasuredata.com/articles/td-cliでは一気に駆け抜けてコマンドだけ書いてしまいます。
1.td table:partial_delete <DB名> <Table名> --from <UDF形式のtime> --to <UDF形式のtime>
→テーブルに余分なデータがある時はtimeを指定して削除します。
2.td import:list
→いま登録されているsession一覧を見ることが出来ます。
3.td import:create <DB名> <Table名>
→これでsessionを作成します。
4.td import:prepare <csvファイル> --format csv --columns <カラム名>,<カラム名>,・・・ --time-value <UDF形式のtime> -o parts/
→ファイルを圧縮分割してmsgpackに変換する。timeカラムがない場合はベタ打ちで指定する。
5.td import:upload <session名> <分割ファイルのパス>
→先程の変換したファイルをアップロードする。
6.td import:perform <session名>
→TDで処理を実行します。
7.td import:commit <session名>
→successになったらcommitをします。
8.td import:delete <session名>
→commitまで完了したらsessionを削除しましょう。初めて触る際は
td import:list
を使って都度確認することで現状のステータスが把握しやすいのでおすすめです。終わり
個人的な躓きポイントだったのは
1. JDKのバージョン8までしか対応していなかったこと。
→そうとは知らずに最新バージョンをインストールして動かずあわあわしてました。
2. いい感じに情報がまとまっているブログなどが少ないこと。
→ただcsvファイルをimportしたいだけだったのに、かゆい所に手が届かない。。。
3. csvファイルにtimeカラムがないパターン。
→今回はuser_idをテーブルにimportしたかっただけなので、指定の仕方がよくわからず苦労しました。ということでcsvの限定的な話をしてしまいましたが、どこかのだれかの役に立つことができれば幸いです。
- 投稿日:2019-11-24T20:39:11+09:00
【FreeBSD】Mac Book Pro上のMac OSを完全削除してFreeBSD OSをインストールする
はじめに
こんばんは。16インチのMBPは諦めましたが、新しい13インチのMBPを購入したので、旧MBPの環境を全消去してFreeBSD OSを入れようと思います。
なぜFreeBSDをインストールするのか
- バックアップは全部新MBPに復元したので、もう旧MBPの環境は要らない
- WindowsもBootCampで新MBPに入れたのでデスクトップPCもしばらく要らない(これはメルカリで処分)
- 現在、行っているクラウドコンテナホスティングの開発環境が欲しい
主な理由は上三つですが、重要なのは一番下の
現在、行っているクラウドコンテナホスティングの開発環境が欲しい
です。こちらはFreeBSD OSかつZFSで構築したファイルシステムが必要なので、開発環境を作るにしても、実はハードルが高い状況となっています(そもそも、FreeBSDで何か作ろうとすると今だとZFSによるファイルシステムの構築はほぼ必須)。
今回は、デュアルブートもせずに完全にFreeBSDの環境にします。
ではいってみましょう。Mac環境
FreeBSD OSをフラッシュメモリに書き込み
https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/12.1/
ここから、各インストールメディアに合ったデータをダウンロードしてください。
今回はフラッシュメモリ用のものをダウンロードしています。その後は、df -hで接続した外部フラッシュメモリのマウント先を確認してディスクを書き込みます。
% df -h Filesystem Size Used Avail Capacity iused ifree %iused Mounted on /dev/disk1s1 233Gi 215Gi 16Gi 94% 4207546 9223372036850568261 0% / devfs 332Ki 332Ki 0Bi 100% 1150 0 100% /dev /dev/disk1s4 233Gi 2.0Gi 16Gi 12% 2 9223372036854775805 0% /private/var/vm map -hosts 0Bi 0Bi 0Bi 100% 0 0 100% /net map auto_home 0Bi 0Bi 0Bi 100% 0 0 100% /home /dev/disk2s2 14Gi 36Mi 14Gi 1% 76 4294967203 0% /Volumes/名称未設定% sudo diskutil umountDisk /dev/disk2 % sudo dd if=/Users/himrock922/Downloads/FreeBSD-12.1-RELEASE-amd64-memstick.img of=/dev/disk2REFIndの導入
https://sourceforge.net/projects/refind/files/0.11.4/refind-bin-0.11.4.zip/download
MacではStartUP Managerというブートローダがデフォルトで導入されています。このブートローダでは、
LinuxやUNIXのOSを発見することができず
、Mac OS以外の選択をすることができません。
そこで、StartUP Managerとは別のブートローダで起動することが必要となります。まずは、上記のURLからREFindをインストールしてください。
因みに、現在のMac OSではSIPと呼ばれるセキュリティ機構が存在し、デフォルトの設定ではrEFIndがインストールできない設定となっています。そこで一旦Mac OS側でSIPの設定を無効にします。
この設定はリカバリーモードでないと実行できないようになっていますので、再起動し、option + rキーでリカバリーモードに入ってターミナルから実行してください。csrutil disableその後再起動を行い、MAC OS経由でrEFIndをインストールします。
./Downloads/refind-bin-0.11.4/refind-install Not running as root; attempting to elevate privileges via sudo.... Password: ShimSource is none Installing rEFInd on OS X.... Installing rEFInd to the partition mounted at /Volumes/ESP Copied rEFInd binary files Copying sample configuration file as refind.conf; edit this file to configure rEFInd.再度、再起動を実行すると以下のようなブートローダで起動することができます。
この後は、普通のFreeBSDのインストールと変わらないので、そのままFreeBSD OSをSSDに書き込んでいきます。
以上でMacが完全にFreeBSDマシンになることができました。
ちょっと文字サイズが小さくなってしまっており、おそらくXorgの自動設定でうまくいっていないところがありそうですが、これから調べてちゃんと直していきます汗
参考文献
- 投稿日:2019-11-24T09:44:47+09:00
VSCodeのXdebugでブレークポイントが止まらない為デバッグ出来ない件を解決した[XAMPP Mac環境]
結論、php.iniの「xdebug.remote_port = 9000」のportとlaunch.jsonのportを9001にしたら解決しました。
.//xamppfiles/etc/php.ini[XDebug] xdebug.remote_port = 9001 ⇦9000を9001に変更launch.json"version": "0.2.0", "configurations": [ { "port": 9001, ⇦9000を9001に変更 } ],前提条件
- xdebug.soはビルドしてextension_dirにコピー済
- php.iniで設定済
- launch.json設定済
- Apache再起動済
環境 項目 OS Mac OS 開発環境 XAMPP IDE VSCode PHPバージョン 7.0.1 Xdebugバージョン v2.8.0 解決に到るまで
現状の確認から行い、次にググった情報から一個一個問題点を洗い出し、解決に至りました。
1.xdebugは動いているか?
僕の場合、デバッグ開始しても何故か変数にもウォッチ式にも値が反映されていませんでした。
そこで「xdebug自体動いていないんじゃないか?」と思い、phpinfo();で
php.iniで設定したxdebugの設定が反映されているか確認する所から始めました反映されていますね。まずはOK
2.launch.jsonの設定は問題ない?
一番可能性があるなと思っていたのがlaunch.json。
デバッグの実行に関連する構成情報をまとめているファイルだが、ここの記述例がサイトによってバラバラなんだよね。
- "stopOnEntry": true, を入れたら直った
- デバッグ時に"name"の値と同じ項目を選択してるか?
等、ググった情報を試してもいくも、全く直らず。
パスの設定に関しても問題なさそうので、ここは一旦スルー。
3.その他、設定ファイルの記入が漏れている?
https://qiita.com/rrryutaro/items/c08f667f20de6abf482f
こちらの投稿にxdebug.iniに以下3行を追記すると動くと書いてあったので試してみた.//xamppfiles/etc/xdebug-2.7.2/xdebug-2.7.2/xdebug.inixdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_connect_back = 1ビクともしない・・・
4.php.iniファイルのxdebug.remote_autostart=1にすると動きはする
実は、iniファイルのXDebugセクションでxdebug.remote_autostart=1にすると動きますよという書き込みを見かけたので
やってみると、なんとデバッグが効き出した!.//xamppfiles/etc/php.ini[XDebug] zend_extension="/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20151012/xdebug.so" xdebug.remote_enable = 1 xdebug.remote_autostart=1 xdebug.remote_connect_back = 1 xdebug.remote_port = 9000しかし・・・デバッグはブレークポイントで止まらず、一番上の行から順に見て行ってしまう・・・。
これじゃブレークポイントの意味ないやん。5.php.iniファイルは本当に正しい?
もう最後はiniファイルしかない。
と思って、いろいろ調べているとこのような書き込みがxdebug.remote_port="9001" # 何故かデフォルトの 9000 だとうまくいかないことが多い
https://qiita.com/kojionilk/items/5cff97ece056fd3c469fまさか・・・
ダメもとでiniファイルを以下に修正
.//xamppfiles/etc/php.ini[XDebug] zend_extension="/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20151012/xdebug.so" xdebug.remote_enable = 1 xdebug.remote_autostart=1 xdebug.remote_connect_back = 1 xdebug.remote_port = 9001 # ⇦9000を9001に変更さらに、launch.jsonのportも9001に変更
launch.json"version": "0.2.0", "configurations": [ { "name": "Listen for XDebug", "type": "php", "request": "launch", "port": 9001, # ⇦9000を9001に変更 "serverSourceRoot": "${workspaceRoot}", "localSourceRoot": "${workspaceRoot}" } ],動け・・・
動いた!
やっと出来たーーー!
Mac + XAMPPのエラーは大変
XAMPPってWindowsとLinuxで使ってるユーザー多いから、中々同じ環境の人の記事がなくてハマったけど、何とか解決しました。
同じくXDebugでブレークポイントが止まらない方の参考になれば幸いです。