O'Reilly のLearning Platformを試してみる
前から気になっていた、O'Reilly(オライリー) の「Learning Platform」を試してみました。 Try O'Reilly Now - O'Reilly Media
「これが何か?」というと、主にエンジニア向けの書籍やウェビナーがいろいろと見られるサブスクリプションサービスです。
それなりににお金がかかるサブスクリプションですが、
10日間のフリートライアルがあるので、GWにでも少し読みながら試してみようかなー、というのが今回のモチベーションです。 Create Your Trial: O'Reilly
まず、気になるところは・・・
コンテンツの量ではないですかね。特に書籍。 書籍の量は申し分なさそうです。約4万8,000冊くらいあります。(2023年4月27日時点) ただし、英語であれば・・・。
O'Reilyに関する蔵書は下記の通りです。
次に気になるところは・・・
やはり、「日本語の書籍」の量ですね。(私みたいに英語のできない人間からすると)
アカウント設定から、Languageを「Japanese」のみに絞れば、書籍の検索でも日本語のもののみ出てきます。
今どのくらいあるのか調べたら・・・
226冊もありました。 実は、昨年とかは少なかったんです。こんなに増えているとは! ラインナップを見た感じ、これまで日本語で刊行されたもので良さそうそうなものもたくさんありました。
さらに気になるところは・・・
書籍がどのように読めるかです。 試したのはWeb(Chrome)からのみですが、チャプターごとの「タテヨミ」です。これは読みやすいなー。
(翻訳時の表示はこんな感じです)
ウェビナーまわりは?
試していません。。
所感
なかなか良さげです。🙂
【GoogleCloud 認定資格】Professional Data Engineer の取得
はじめに
Goog Cloudのプロダクトを体系的に、またデータに関するプラットフォームを掘り下げて学ぶ目的として、Professional Data Engineer の試験項目を学習しました。その後、学習後に同試験を受けてみたところ、1度で合格できましたので試験までにやったことをまとめておきます。
このドキュメントの使いみち
下記にあてはまる方であれば、多少は参考になるかもしれません。
- Google Cloudについて体系的に学びたいと考えている方
- 「Professional Data Engineer」の資格取得を考えている方
前提条件
- このドキュメントは、資格取得した2021年12月の時点で記載したものになります。
- 「Professional Data Engineer」については下記の公式ドキュメントをご参照ください。
Professional Data Engineer 認定資格 | Google Cloud
筆者のスペック
- 昔は主にサーバサイドエンジニアやDBA(インフラ屋さんではない)
- 最近はデータエンジニアっぽいことをしている
- 2年くらい前に「AWS Certified Solutions Architect」の資格を取得
- Google Cloudは、BigQueryとストレージについてはある程度理解し業務で触っていた
- 英語はたいしてできない
- 直近「Associate Cloud Engineer」の資格を取得した
やったこと
前提として、先に下記で記載している「Associate Cloud Engineer」向けの学習をしており、その完了がスタート地点でした。
【GoogleCloud 認定資格】Associate Cloud Engineer の取得 - セグメント例外(コアダンプしました。)
それ以外に、下記の学習をしました。
- 参考書を数冊読んだ
- Coursera のビデオを観て学習する
- Qwiklabs でハンズオン
- 公式ドキュメントを読む
- 模擬試験
それぞれについて、次に詳しく記載します。
参考書を読む
スケーラブルデータサイエンス データエンジニアのための実践Google Cloud Platform
若干発行年が古いですが、考え方といったことが書かれており非常に有用な書籍かと思います。
Google Cloudではじめる実践データエンジニアリング入門[業務で使えるデータ基盤構築]
データレイク、ETL処理、BigQuery、BI、パイプラインとデータ基盤構築について体型的に学ぶことができました。
Google Cloud Platform実践ビッグデータ分析基盤開発 ストーリーで学ぶGoogle BigQuery
主に、BigQueryについての基本やパフォーマンス、パイプラインについて記載されています。
GoogleCloudPlatform 実践 機械学習基礎開発MachineLearning/データ分析
Google Cloudの機械学習プロダクトを中心にして、それに関わる説明がされています。
これらの本を読んでいると同じことが書かれていることが多々ありますが、そこが重要なポイントになると思いますのでしっかりと学習するようにしました。
Coursera で学習
Coursera | 一流講師によるオンライン講座でスキルアップ。会員登録無料 こちらのオンライン講座で下記の講座を受講しました。
Google Cloud 認定の準備: クラウドデータエンジニア プロフェッショナル認定証 日本版 プロフェッショナル認定証 | Coursera
Smart Analytics, Machine Learning, and AI on GCP 日本語版 | Coursera
- Preparing for the Google Cloud Professional Data Engineer Exam 日本語版 | Coursera
Courseraは無料、有料の講座があります。 不定期で無料で1ヶ月利用できるキャンペーンが実施されるようで、それを利用しました。
(参考) ※このキャンペーンは既に終了済みです Google Cloud Skills Boost launch Campaign Japan
Google Cloud Skills Boost(Qwiklabs)でハンズオン
Google Cloud Skills Boost Qwiklabs Courseraと合わせて、こちらでハンズオンの講座をやりました。
目的
主に座学の知識を定着させるため
- Qwik Start系のラボはひと通りやってみて、どのような製品か実際に触ってみる
- 基本的なコマンドラインの理解
- 出題される小問題の理解
※下記に記載したものはすべて「日本語」で受講できます。
受講した項目
クエスト
こちらも有料と無料のものがあります。Courseraと同じく、1ヶ月無料のキャンペーンを利用しました。 有料で利用するには「クレジット」というものを購入し、それを消費して講座を受けます。定額を払って1ヶ月間講座を利用し放題のプランもあるようなので、有料で利用する場合はそちらのほうが良さそうに思います。
(参考) ※このキャンペーンは既に終了済みです Google Cloud Skills Boost launch Campaign Japan
(追記)※下記は12/9までキャンペーン中! 概要 / アジェンダ - Google Cloud Learn: 初開催 無料オンライン イベント
公式ドキュメントを読む
公式ドキュメントは記載がとても多いので、他のそれぞれの学習と合わせて必要なところを読みました。 具体的には下記のような使い方をしました。
- 各プロダクトのコンセプトの理解
例)コンセプト | Cloud Spanner | Google Cloud - 各プロダクトのベストプラクティスの理解
例)Dataproc ベスト プラクティス ガイド | Google Cloud Blog - スキーマ設計(データベース関連のプロダクト)
例)スキーマ設計の作成 | Cloud Bigtable ドキュメント | Google Cloud - 模擬試験で間違った問題の理解
- 模擬試験で誤選択肢として出てきたキーワードを調べる
なぜその選択肢は違うのか?それは何に関係するものなのか?の理解
等
模擬試験
下記のUdemyで販売されている問題集(有料)と、公式の模擬試験(無料)をやりました。
公式
【GCP認定資格】 Professional Data Engineer 模擬問題集 | Udemy
Udemy
Professional Data Engineer 認定資格 | Google Cloud
模擬試験は試験の直前ではなく、他の学習方法での学習がある程度進んだところで少しづつ繰り返しやりました。 正解以外の選択について、それがなぜ違うのかということをきちんと理解するようにしました。
Udemyは頻繁に定期的な価格の値下げがされるので、そのときに購入することをおすすめします。 Google Cloudの認定試験向けの問題集は、AWSと比べて少ない印象です。
本試験を受けてみての所感
先に「Associate Cloud Engineer」向けの学習をしていたことが多いに役立ちました。 データやパイプライン構築、機械学習を含めたプロダクトの問題がまんべんなく出題されましたが、各プロダクトの細かいことやコードレベルまで細かい問題は出ませんでしたので、「Associate Cloud Engineer」の範囲を十分に学習した上で、「Professional Data Engineer」に関わるプロダクトを少し掘り下げて学習するのが良いかと感じました。
おまけ(問題解答のテクニック)
Google Cloudの試験問題は知識とテクニックだけで解ける問題が少なく、よく考えないと解けない問題が多い印象です。しかし、テクニックを知っておくと、問題の選択肢をかなり絞ることができ有益かと思います。
学習を進める上で自然に把握できてくるものかと思いますが、参考までに記載します。
※下記に記載しています
【GoogleCloud 認定資格】Associate Cloud Engineer の取得 - セグメント例外(コアダンプしました。)
おわりに
2週間程度の学習で「Associate Cloud Engineer」を取得し、続けて2週間程度の学習で「Professional Data Engineer」の取得ができました。
Google Cloudの様々をプロダクトを横断的にいろいろと学習することができました。特に、機械学習についての基礎を学習できたことが今後に活かせるように思いました。 Google Cloudプロダクトの学習方法といった部分で少しでも本ドキュメントが参考になれば幸いです。
【GoogleCloud 認定資格】Associate Cloud Engineer の取得
はじめに
Goog Cloudのプロダクトを体系的に学ぶ目的として、Associate Cloud Engineer の試験項目を学習しました。その後、学習後に同試験を受けてみたところ、1度で合格できましたので試験までにやったことをまとめておきます。
【追記】 こちらの試験のあと、「Professional Data Engineer」につきましても取得できましたので下記で記載しています。
【GoogleCloud 認定資格】Professional Data Engineer の取得 - セグメント例外(コアダンプしました。)
このドキュメントの使いみち
下記にあてはまる方であれば、多少は参考になるかもしれません。
- Google Cloudについて体系的に学びたいと考えている方
- 「Associate Cloud Engineer」の資格取得を考えている方
前提条件
このドキュメントは、資格取得した2021年11月の時点で記載したものになります。
「Associate Cloud Engineer」については下記の公式ドキュメントをご参照ください。 Associate Cloud Engineer 認定資格 | Google Cloud
筆者のスペック
- 昔は主にサーバサイドエンジニアやDBA(インフラ屋さんではない)
- 最近はデータエンジニアっぽいことをしている
- 2年くらい前に「AWS Certified Solutions Architect」の資格を取得
- Google Cloudは、BigQueryとストレージについてはある程度理解し業務で触っていた
- 英語はたいしてできない
やったこと
- 参考書を数冊読んだ
- Coursera のビデオを観て学習する
- Qwiklabs でハンズオン
- 公式ドキュメントを読む
- 模擬試験
それぞれについて、次に詳しく記載します。
参考書を読む
まず下記の2冊の参考書を読んで、Google Cloudのプロダクト全体の概要を理解しました。
Google Cloud Platform エンタープライズ設計ガイド
Google Cloudのプロダクト全体をざっと理解するのに良かったです。 ただし、発行が2018年のものになるので少し内容に古さがあるので注意が必要です。 また、GKE(Google Kubernetes Engine)に関する情報はないので、そこは次項の本で吸収しました。
ハンズオンで分かりやすく学べる Google Cloud実践活用術 データ分析・システム基盤編 Google監修
2021年6月発行の本で比較的に新しいものになります。 GKEの概要については、こちらの本で吸収しました。
また、私は利用しませんでしたが、下記の本を利用されている方も多いようです。
Coursera で学習
Coursera | 一流講師によるオンライン講座でスキルアップ。会員登録無料 こちらのオンライン講座で下記の講座を受講しました。
- (クエスト) Preparing for Google Associate Cloud Engineer Exam 日本語版 | Coursera
- (コース) Google Cloud Fundamentals: Core Infrastructure | Coursera
Courseraは無料、有料の講座があります。 不定期で無料で1ヶ月利用できるキャンペーンが実施されるようで、それを利用しました。
(参考) ※このキャンペーンは既に終了済みです Google Cloud Skills Boost launch Campaign Japan
Google Cloud Skills Boost(Qwiklabs)でハンズオン
Google Cloud Skills Boost Qwiklabs Courseraと合わせて、こちらでハンズオンの講座をやりました。
目的
主に座学の知識を定着させるため
- Qwik Start系のラボはひと通りやってみて、どのような製品か実際に触ってみる
- 基本的なコマンドラインの理解
- 出題される小問題の理解
※下記に記載したものはすべて「日本語」で受講できます。
受講した項目
クエスト
こちらも有料と無料のものがあります。Courseraと同じく、1ヶ月無料のキャンペーンを利用しました。 有料で利用するには「クレジット」というものを購入し、それを消費して講座を受けます。定額を払って1ヶ月間講座を利用し放題のプランもあるようなので、有料で利用する場合はそちらのほうが良さそうに思います。
(参考) ※このキャンペーンは既に終了済みです Google Cloud Skills Boost launch Campaign Japan
(追記)※下記は12/9までキャンペーン中! 概要 / アジェンダ - Google Cloud Learn: 初開催 無料オンライン イベント
公式ドキュメントを読む
公式ドキュメントは記載がとても多いので、他のそれぞれの学習と合わせて必要なところを読みました。 具体的には下記のような使い方をしました。
- 各プロダクトのコンセプトの理解
例)コンセプト | Cloud Spanner | Google Cloud - 各プロダクトのベストプラクティスの理解
例)Dataproc ベスト プラクティス ガイド | Google Cloud Blog - スキーマ設計(データベース関連のプロダクト)
例)スキーマ設計の作成 | Cloud Bigtable ドキュメント | Google Cloud - 模擬試験で間違った問題の理解
- 模擬試験で誤選択肢として出てきたキーワードを調べる
なぜその選択肢は違うのか?それは何に関係するものなのか?の理解
等
模擬試験
下記のUdemyで販売されている問題集(有料)と、公式の模擬試験(無料)をやりました。
公式
Google Cloud - Associate Cloud Engineer 模擬試験
Udemy
【GCP認定資格】Google Cloud Platform Associate Cloud Engineer模擬問題集 | Udemy
模擬試験は試験の直前ではなく、他の学習方法での学習がある程度進んだところで少しづつ繰り返しやりました。 正解以外の選択について、それがなぜ違うのかということをきちんと理解するようにしました。
Udemyは頻繁に定期的な価格の値下げがされるので、そのときに購入することをおすすめします。 Google Cloudの認定試験向けの問題集は、AWSと比べて少ない印象です。
本試験を受けてみての所感
以前にAWSの同等資格を取得しましたが、それと比べると難しかった印象です。 AWSは比較的問題集が多く、それに類似した問題も出題された記憶があるのですが、Google Cloudの試験ではあまり問題集に類似した問題はなかった印象です。(問題集を利用して学習する過程で得た知識を使って回答できる問題は出題された)
試験時間は2時間、私が受けた時は50問出題されましたが、各問題文が長くよく読む必要があります。1時間あれば試験問題を一巡はできるだろうと考えていたのですが、50問ひと通り終わらせるまでに1時間15分くらいかかってしまいました。その後、時間ギリギリまで回答を見直しました。
学習ポイントとしては、どのプロダクトにも影響する「Cloud IAM」に関係することが多かった印象なので、Cloud IAMや権限まわりはきちんと押さえておいたほうが良いかもしれません。
おまけ(問題解答のテクニック)
Google Cloudの試験問題は知識とテクニックだけで解ける問題が少なく、よく考えないと解けない問題が多い印象です。しかし、テクニックを知っておくと、問題の選択肢をかなり絞ることができ有益かと思います。
学習を進める上で自然に把握できてくるものかと思いますが、参考までに記載します。
- Apache Kafkaの移行は、Cloud Pub/Sub
- Apache Beamと言えば、Cloud Dataflow
- Apache Airflowと言えば、Cloud Composer
- Hadoop環境の移行はDataproc
- HadoopのHDFSの移行はCloud Storage
- パイプラインの黄金パターンは、Cloud Pub/Sub → Cloud Dataflow → BigQuery
- BigQueryのチューニングの基本は、パーティショニングとクラスタリング
- RDBMSの移行を容易にするには、Cloud SQL
- 新規に大規模なトランザクションシステムを構築する場合は、Cloud Spanner
- データポータルでの可視化が必要であれば、分析はBigQuery
- 時系列データはCloud Bigtable
- コスト削減と言えばCloud Storage、プリエンプティブル VM
- 非エンジニア向けのデータ加工はCloud Dataprep
- オーケストラレーションと言えば、Cloud Composer
- マルチクラウドまわりは、Cloud Composer、Anthos
- 地理空間データの分析はBigQuery
- メッセージングデータ、Cloud Pub/Sub → Bigtable
おわりに
これらの学習方法で筆者は2週間ほどで資格の取得ができました。 今まで利用したことのなかったGoogle Cloudのプロダクト概要を体系的に理解することができたと思っています。 試験を受けるにしろ受けないにしろ、Google Cloudプロダクトの学習方法といった部分で少しでも本ドキュメントが参考になれば幸いです。
XVimプラグインをXcode 6.4に導入する
概要
XVimプラグインをXcode 6.4にインストールします。
はまりどころ
以前のバージョンのXVimがインストールしていたところ、うまく動作しなかった。 解決方法は後述。
導入の手順
GitHubからcloneしてmakeする。
$ git@github.com:XVimProject/XVim.git $ cd XVim $ make
Xcodeを再起動する。
起動時に表示されるダイアログで「Load Bundle」を選ぶ。
「Unexpected code bundle “Xvim.xcplugin”」 で「Load Bundle」を選ぶ。
XVimが動作しなかったときの解決方法
最初は何度インストール、再インストールを試してもXVimが動作しなかった。 また、ダイアログ選択で「Skip Bundle」を選んでも動作しない。
いったんplist項目を削除し、再度ダイアログで「Load Bundle」を選ぶことで解決した。
まず確認
$ defaults read com.apple.dt.Xcode
DVTPlugInManagerNonApplePlugIns-Xcode-6.4
という項目があると思うので、それを下記のコマンドで削除してから、Xcodeを再起動する。
$ defaults delete com.apple.dt.Xcode DVTPlugInManagerNonApplePlugIns-Xcode-6.4
※最後のXcode-6.4のところは環境にあわせて変更
Kibana x Fluentd環境構築(CentOS 6.6@Vagrant)
前提条件
- Vagrant + VirtualBoxの環境はインストールされていること
手順
Vagrant環境構築
Vagrant作成
以下、ローカル環境での作業。
$ mkdir kibana $ cd kibana $ vagrant init chef/centos-6.6 $ ls Vagrantfile
Vagrantfileの編集
下記の行のコメントアウトを外す。
config.vm.network "private_network", ip: "192.168.33.10" config.vm.hostname = "kibana"
Vagrantの起動
$ vagrant up
事前に必要なものの導入
$ vagrant ssh
以下、VM上での作業。
$ sudo su - # cp -p /etc/localtime /etc/localtime.org # cp -p /usr/share/zoneinfo/Asia/Tokyo /etc/localtime # yum -y install mysql-devel # yum -y install java-1.8.0-openjdk.x86_64 # yum -y install gcc # yum -y install curl-devel
Kibana x Fluentdの動作環境構築
Fluentdのインストール
下記のファイルを新規作成する。
# vi /etc/yum.repos.d/treasuredata.repo
※記述内容
[treasuredata] name=TreasureData baseurl=http://packages.treasure-data.com/redhat/$basearch gpgcheck=0
# yum -y install td-agent # chkconfig td-agent on
ElasticSearchのインストール
下記のファイルを新規作成する。
# vi /etc/yum.repos.d/elasticsearch.repo
※記述内容
[elasticsearch-1.4] name=Elasticsearch repository for 1.4.x packages baseurl=http://packages.elasticsearch.org/elasticsearch/1.4/centos gpgcheck=1 gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch enabled=1
# yum -y install elasticsearch # chkconfig elasticsearch on
kopf(es/plugin)のインストール
# /usr/share/elasticsearch/bin/plugin --install lmenezes/elasticsearch-kopf/master
kibana(es/plugin)をインストール(siteプラグインとしてインストール)
# /usr/share/elasticsearch/bin/plugin -url http://download.elasticsearch.org/kibana/kibana/kibana-latest.zip -install elasticsearch/kibana3
td-agent、および、elasticsearchの起動
# service td-agent restart # service elasticsearch restart
動作確認
下記のアドレスへブラウザよりアクセスする。(エラーとならないことを確認)
http://192.168.33.10:9200/_plugin/kopf/#!/cluster http://192.168.33.10:9200/_plugin/kibana3/#/dashboard/file/default.json
fluent-plugin-elasticsearch(fd/plugin)のインストール
# /usr/lib64/fluent/ruby/bin/fluent-gem install fluent-plugin-elasticsearch
fluent-plugin-mysql-replicator(fd/plugin)のインストール
# /usr/lib64/fluent/ruby/bin/fluent-gem install fluent-plugin-mysql-replicator
GitHubで複数アカウントを利用する(SSH Keys設定)
ケース
自分用、会社用でGitHubのアカウントを分けているが、 自宅PC(接続元)からどちらのアカウントも利用したい。
※この場合、自宅PCで公開鍵を作成してGitHubの「SSH Keys」で設定するが、同じ公開鍵を複数アカウントでは使うことはできない。
解決方法
接続元に複数の公開鍵を作成し、.ssh/configで管理。 GitHub接続時に利用する鍵を指定する。
手順
公開鍵の生成、設定
接続元で必要な分のキーペアを作成し、GitHubのそれぞれのアカウントへ登録しておく。 ※このとき、キーの名前を変えて生成する。 例)id_rsa.foo、id_rsa.bar →id_rsa.foo/id_rsa.foo.pub、id_rsa.bar/id_rsa.bar.pubというようにキーペアが作成される。
手順はGitHubのリファレンスの通り。 Generating SSH Keys · GitHub Help
.ssh/configの作成、設定
ファイルが存在しない場合は、作成して下記の通りように設定する。 ※パーミッション:600
.ssh/config
Host github-foo HostName github.com User git IdentityFile /pathToKey/id_rsa.foo Host github-bar HostName github.com User git IdentityFile /pathToKey/id_rsa.bar
以上で完了。
GitHub接続時
下記のように指定して接続する。
git clone git@github-foo:userName/repositoryName.git git clone git@github-bar:userName/repositoryName.git