[2020年7月] Google Cloud Certified – Professional Data Engineer日本語版(プロ認定):オンプレ(Hadoop のHDFS クラスタ)からGCP へのデータ移行についてまとめ

どうも、すえきあおいです。模試でよく出てきたオンプレからGCPへのデータ移行についてまとめました。

 

私はProfessional Data Engineerの資格を取るため勉強中のへっぽこSEです。ちなみに試験は7/29。あと23日です。(これは予定投稿なので、記事を書いている時と公開日時にはタイムラグがあります)

カウントダウン怖いw

 

この辺の経緯・方法などは以下の過去記事をご参照ください。

[2020年7月] Google Cloud Certified – Professional Data Engineer日本語版(プロ認定):遠隔監視(オンライン)試験の申し込み方

[2020年7月] Google Cloud Certified – Professional Data Engineer日本語版(プロ認定):模擬試験の受け方

 

オンプレ(Hadoop のHDFS クラスタ)からGCP へのデータ移行

オンプレからGCPに巨大なデータを移行したい、という場合、移行先はCloud Storageが適しており、Storageに移すときにはpushモデルとpullモデルの2種類のやり方があります。

pushモデル:設定は簡単だけどコストと時間がかかる。s

オンプレ側でデータを押し出す。オンプレ側に Cloud Storage コネクタをインストールする必要がある。簡単だけど、オンプレ側にデータをコピーして転送するだけの十分なリソース(CPU、RAM、ネットワーク帯域幅など)が必要で、pullモデルと比べて、ネットワーク上のトラフィックはファイルの合計サイズの約 2 倍近くになることがあり、コストと時間がかかる。

Dataproc クラスタノードにあらかじめインストールされている Cloud Storage コネクタを使用すると、Cloud Storage を Hadoop 互換ファイル システム(HCFS)としてジョブを実行できます。

pullモデル:設定は複雑だけど安くて速い(Google推奨)

GCP側からデータを引っ張る。複雑。だけど、安くて速い。オンプレ側に負担がかからないし、データ移行に必要なクラスタは、移行後に破棄することもできる。

Dataproc のエフェメラル クラスタがそのデータノードで distcp ジョブを実行し、ソースクラスタからファイルを pull して Cloud Storage にコピーします。

distcpジョブ:distributed copyは直訳すると「分散コピー」。つまり、HDFSに分散されたデータを並列処理でコピーして転送処理するジョブのこと。

 

Cloud Storage 以外にデータを移行する場合

先ほどのpushモデル、pullモデルの話は移行先が Cloud Storageの場合。基本、データは Cloud Storage に移動させるので、ここをまずは抑えとけ、という感じでした。

ただ、別の Google Cloud プロダクトにデータを移行したほうがよい場合もあるとのこと。

  • Apache HBase からデータを移行する場合:Cloud Bigtable へ移行

  • Apache Impala からデータを移行する場合:BigQuery へ移行

HBase または Impala に、Bigtable や BigQuery に保存しなくても使用できるデータが存在する場合もあります。ジョブで Bigtable や BigQuery の機能が必要ない場合は、Cloud Storage にデータを保存してください。

ふむふむ…何言ってんのかようわからん(白目)

というか、HBaseとかImpalaとか知らん。ということで調べました。

Apache HBase:オープンソースの、列指向、分散データベースであり、GoogleのBigTableをモデルとし、Javaにより書かれている。Hadoopプロジェクトの一部として開発され、HDFS の上で実行され、Hadoopに対しBigtableのような機能を提供する。

Apache Impala(インパラ):Apache Hadoopを実行するコンピュータークラスターに格納されたデータ用のオープンソースの超並列処理SQLクエリエンジン。

つまり、対比表にするとこんな感じか。

マネージドサービス DB(列指向・分散) SQLクエリエンジン
オンプレ Hadoop HBase Impala
クラウド(GCP) Dataproc BigTable BogQuery

 

BigQueryとBigTableの違い

ついでに調べました。

BigQuery:あまり変化しない、または追加しても変化しないデータセット用のクエリエンジンです。

クエリで「テーブルスキャン」が必要な場合、またはデータベース全体を検索する必要がある場合に最適です。合計、平均、カウント、グループ分けを考えてください。 BigQueryは、大量のデータを収集し、それについて質問する必要があるときに使用するものです。

BigTable:データベース。

大規模でスケーラブルなアプリケーションの基盤となるように設計されています。 BigTableは、データの読み取りと書き込みが必要なあらゆる種類のアプリを作成するときに使用します。スケールは潜在的な問題です。

 

なるほど。頻繁に更新したいビッグデータは、BigTableに格納せよ、って感じですかね。

 

ハイブリット(オンプレとクラウド)でデータを同期する場合

Apache Airflow などのテクノロジーを使用すると、データの同期管理が容易になります。

ふむふむ、同期とか面倒臭そうですね。てか、Airflowって何?w と思ったのでまた調べました。あぁ一日があっという間に過ぎていく……

Apache Airflow:ワークフローマネージャーツール。

Hadoopもジョブ管理、ワークフローができるらしいので、何が違うのか調べてみたところ、Hadoopはどちらかと言うと「データベース」ツールらしい。ワークフローもあるけど使いにくいんだってさ。

Airflowは、GCPで言うところのCloud Composerとかに近いようだ。

 

その他、オンプレからGCPへのデータ移行におけるポイント

リクエスト レートを増やしていく

1 秒あたりの書き込みリクエスト数がリクエスト レートの 1,000 件を超えることが見込まれるとしたら、Cloud Storage ドキュメントの説明に従ってリクエストレート(リクエスト率)を徐々に増やしてください。そうしないと、レイテンシ(遅延)やエラーレートが一時的に高まる可能性があります。

データの移行速度を向上させる

オンプレとGCPのデータを転送するには、Cloud VPN の仮想プライベートネットワークを使います。

もっと速度を上げたい時は、複数の VPN トンネルを作成します。

もっともっと速度を上げたい時は、以下を検討します。

〜単語の解説〜

・PoP(Points- of-Presence:アクセス拠点)

物理的な場所。ここでは、世界中にあるGoogleのデータセンターのこと。5G時代の話題で登場する「エッジコンピューティング」でも勉強した気がする。

 

・エッジコンピューティング(=拠点計算)

クラウド上での処理を複数のデータセンターに分散させて、処理の負担を軽句して速度を上げる技術の総称。

要するに、全世界規模の分散処理システム、みたいな。PSYCHO-PASSに出てくるシビュラシステムで言うと、あの脳ひとつひとつが物理サーバーで、脳がある厚生省の本部ビル(ノナタワー)がデータセンターだとすると、全世界にたくさんあるノナタワーでクラウド上の処理を分担して行うイメージ。(余計わかりにくくなった?w

 

・ダイレクト ピアリング

Googleのネットワークエッジ(拠点)に直接ルータ同士で接続すること。インターネット回線を介さない。帯域確保された回線だから速い。

ピアリング(Peering)のPeerは直訳すると仲間。ピアリングは、プロバイダ同士が直接ルータ同士で接続すること。

 

・ホップ数

通信ネットワーク上で通信相手に到達するまでに経由する転送・中継設備の数のこと。

 

ここまで書いてて思ったけど、専門用語(というか主に英語)の意味がわかると、書いてあることがグッと理解できるようになった。

どうでもいいけど、英語ってカタカナにした途端、意味がわかんなくなる。日本人にレベル高いエンジニアが少ないのは、少なからず言語の壁の影響があるような気がした、今日この頃でした。

それでは!

末岐 碧衣
  • 末岐 碧衣
  • フリーランス のシステムエンジニア。独立後、一度も営業せずに月収 96 万円を達成。1986年大阪生まれ。早稲田大学理工学部卒。システムエンジニア歴 12年。
    2009年、ITコンサルティング企業に入社。3年目でコミュ障が爆発し人間関係が崩壊。うつにより休職するも、復帰後はコミュ障の自覚を持ち、「チームプレイ」を徹底的に避け、会社組織内においても「一人でできる仕事」に専念。社内外から評価を得た。
    無理に「チームプレイ」するよりも「一人でできる仕事」に専念した方が自分も周囲も幸せにできることを確信し、2015年フリーランスとして独立。