20191124のMacに関する記事は3件です。

Treasure Dataでcsvファイルをimportする方法(Mac)

背景

Treasure Dataにcsvファイルをimportする際にかなり手こずったのでここに書いておきます。
検索しても一連の流れを書いていてパッとわかりやすいものがなかったので、、、

目的

Treasure Dataにcsvファイルをimportする方法を説明。
今回は自分のやり方を書き記します。

やること

  1. JDKのインストール
  2. embulkのインストール
  3. TDコマンドのインストール
  4. TDコマンドの実行
  5. 終わり

JDKのインストール

  • JDKが入っているかチェック

ターミナルを開きjava -versionと打ち込みます。
デスクトップ_—_-bash_—_80×24_と_「MACでTreasure_Dataでcsvファイルをimportする方法」を編集_-_Qiita.png
↑の場合はインストールされていません。

  • JDKのインストール

ちなみに、バージョン8より上はまだ対応していないので気をつけましょう。
バージョン:Java SE 8
Product:Mac OS X x64
を選択しましょう。
https://www.oracle.com/technetwork/java/javase/downloads/index.html?ssSourceSiteId=otnjp

Java_SE_Development_Kit_8_-_Downloads.png

クリックするとアカウント認証を求められるので持ってなければ作成しましょう。
過去バージョンをインストールする際には必要みたいです。

Oracleログイン_-_シングル・サインオン.png

  • では、インストールされていることを確認しましょう。

デスクトップ_—_-bash_—_80×24_と_「MACでTreasure_Dataでcsvファイルをimportする方法」を編集_-_Qiita.png

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-files

TDコマンドのインストール

↓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の限定的な話をしてしまいましたが、どこかのだれかの役に立つことができれば幸いです。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【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環境

スクリーンショット 2019-11-24 17.36.58.png

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/disk2

REFIndの導入

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.

再度、再起動を実行すると以下のようなブートローダで起動することができます。

IMG_1541.jpg

この後は、普通のFreeBSDのインストールと変わらないので、そのままFreeBSD OSをSSDに書き込んでいきます。

以上でMacが完全にFreeBSDマシンになることができました。

IMG_1542.jpg

ちょっと文字サイズが小さくなってしまっており、おそらくXorgの自動設定でうまくいっていないところがありそうですが、これから調べてちゃんと直していきます汗

参考文献

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

VSCodeのXdebugでブレークポイントが止まらない為デバッグ出来ない件を解決した[XAMPP Mac環境]

結論、php.iniの「xdebug.remote_port = 9000」のportとlaunch.jsonのportを9001にしたら解決しました。

.//xamppfiles/etc/php.ini
[XDebug]
xdebug.remote_port = 900190009001に変更
launch.json
    "version": "0.2.0",
    "configurations": [
        {
            "port": 9001,             90009001に変更
        }
    ],

前提条件

  1. xdebug.soはビルドしてextension_dirにコピー済
  2. php.iniで設定済
  3. launch.json設定済
  4. Apache再起動済
環境 項目
OS Mac OS
開発環境 XAMPP
IDE VSCode
PHPバージョン 7.0.1
Xdebugバージョン v2.8.0

解決に到るまで

現状の確認から行い、次にググった情報から一個一個問題点を洗い出し、解決に至りました。

1.xdebugは動いているか?

僕の場合、デバッグ開始しても何故か変数にもウォッチ式にも値が反映されていませんでした。

スクリーンショット 2019-11-20 13.04.08.png

そこで「xdebug自体動いていないんじゃないか?」と思い、phpinfo();で
php.iniで設定したxdebugの設定が反映されているか確認する所から始めました

スクリーンショット 2019-11-20 13.05.09.png

反映されていますね。まずは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.ini
xdebug.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       #       ⇦90009001に変更

さらに、launch.jsonのportも9001に変更

launch.json
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for XDebug",
            "type": "php",
            "request": "launch",
            "port": 9001,       #       90009001に変更
            "serverSourceRoot": "${workspaceRoot}",
            "localSourceRoot": "${workspaceRoot}"
        }
    ],

動け・・・

スクリーンショット 2019-11-20 13.11.10.png

動いた!

やっと出来たーーー!

Mac + XAMPPのエラーは大変

XAMPPってWindowsとLinuxで使ってるユーザー多いから、中々同じ環境の人の記事がなくてハマったけど、何とか解決しました。
同じくXDebugでブレークポイントが止まらない方の参考になれば幸いです。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む