PCAの試験メモです。
ざっとサービスの概観を把握するのにご活用ください。
データベース
- AWSで言うとDynamoDB
- NoSQLのサーバレスデータベース。ドキュメント指向のデータモデルを採用している。
- Firestoreのほうが新しい。
- ローカルのインデックス設定に基づき、新しいデータストアのインデックスを作成するには、gcloud datastore create-indexesというコマンドを打つ。
- AWSで言うとRDS
- MySQL、PostgreSQL、SQL Server 用のフルマネージドリレーショナルデータベースサービス。
- Cloud SQLインスタンスの自動バックアップとバイナリログを有効にして、データ損失を最小限に抑える。
- これにより、バックアップからデータベースを復元し、新しいCloud SQLインスタンスにリカバーするポイントインタイムリカバリーを実行できる。
- CPU容量の大きいマシンタイプに変更するためには再起動が必要。
- シャーディングによって、レプリケーション時間の短縮が可能。
データ管理
- AWSで言うとGlue DataBrew
- データを準備するツール。
- GUIで可視化しながら、簡単にデータを処理することが出来る。
- Dataprep という名前は、"data preparation"に由来する。
- 内部的にDataflowまたはBigQueryを使用している。
- AWSで言うとEMR
- Apache SparkとApache Hadoopのエコシステムを実行できる、高速で使いやすく、低コストで完全なマネージドサービス。
- Apache SparkとApache Hadoopを使いたければこれを使う。
- Google Cloud StorageやStackdriver Loggingなど、Google Cloud Platformの他のサービスと統合されているため、TCO(Total Cost of Ownership: ITシステムを導入する際に必要となる、ソフト・ハードの購入や維持管理にかかわるすべての費用の総額)を削減することができる。
- Dataprocは"Data process"の略。
- AWSで言うと"SageMaker"(のJupyter Notebook環境)
- データの探索、分析、可視化、機械学習モデルの作成などを行うことができる。
- DatalabはJupyter Notebookをベースとしている。
- PythonやSQL、JavaScriptなどのプログラミング言語を使用してデータ分析を行える。
- Microsoft Excel, JMP, Tableau が近いツール。
- Jupyter Notebook と同様に、データ解析に用いられる numpy 、 pandas や、可視化に用いられる seaborn 、 matplotlib といった人気のあるライブラリはデフォルトで利用可能。
- GCP上のサービスであるBigQuery, GCS, CloudML Engineなどとも統合されている。
- Datalab自体はdockerイメージとしてCGE上で動くことが多い。
- AWSで言うとRedShift
- フルマネージドの列指向データーベース。
- データ分析やPythonとAPIの連携などが出来る。
- 実行処理速度が高速で、リアルタイムでデータ解析も可能。
- データの蓄積場所としても利用可能。
- BigQueryの料金体系は大きく、「データを保存するための料金」と「SQLを実行し結果を取得するための料金」の2つ。
- BigQueryはWebブラウザ上で起動することが可能。コマンドラインからの操作も可能。
- ビュー (通常)
- 実データを持たない、読み取り専用の仮想的なテーブル。
- ベースとなるテーブルへの SELECT 文を書くことで定義する。
- 副問合せを含む複雑なクエリを単純化して可読性をよくしたり、再利用性を高めるために利用する。
- マテリアライズド・ビュー
- クエリの結果が物理的にディスク上に保存される仮想テーブルのこと。
- 再度同じクエリを実行する場合に高速に結果を取得することができる。特に、複雑な計算や集約を伴うクエリの結果を高速に取得する必要がある場合に有効。
- ビューとそのビューのベーステーブルは同じロケーションに存在している必要がある、使える JOIN 句に制限がある、のようないくつかの制限が存在する。
- BigQueryのACLやビューを利用することで、アクセスを制限することができる。
- テーブルACLでは、テーブルレベルのアクセス権を設定することができる。
- ホットスポットを解消するためには、Googleが推奨する行キーの設定方法にする。
- RowKey戦略を見直し、キーがアルファベットに均等になるようにする。
- ちゃんとパーティションしようねってこと?
- これは列指向やからシャーディングって言わない?
- 有識者教えてください。
- 外部テーブル定義を行うことで、直接Cloud Storage オブジェクトに対してクエリをかけることが可能。
ストレージ
- AWSで言うとS3
- ストレージクラスはStandard / Nearline / Coldline / Archive 。右に行くほど長期保存で取り出し頻度が少ないデータに適している。
- 最低保管期間 (Minimum storage duration) が各ストレージクラスごとに定められており、保管したオブジェクトがこの日数以内に削除・置換・移動された場合、この日数分の保管料金が発生する。
-
どのストレージクラスでも迅速にデータを取り出すことができる。
- S3ではGlacierなどは取り出しに時間がかかる。
- バケット作成時に ロケーション を選択する。ロケーションは「 単一リージョン 」「 デュアルリージョン 」「 マルチリージョン 」のタイプがあり、それぞれのタイプでリージョンを選択可能。
- 単一リージョンを選んだ場合でも、リージョン内の複数のゾーンにデータは冗長化される。
- リージョン間のレプリケーションは書き込み完了から非同期で行われる。
- RTO を短くする目的でターボレプリケーション(turbo replication)を有効化すると遅延を15分以内に抑えられるが追加料金が発生する。ターボレプリケーションはデュアルリージョンのバケットでのみ利用可能。
- 一つのMulti-Regional Cloud Storageではある大陸の複数のリージョンのみ、例えばEU、米国、アジアをカバーするだけ。
- 書き込みや削除の後の読み取りオペレーションは強整合性で実現している。
- アクセス制御設定の変更だけは結果整合性。
- デフォルトでは、Cloud Storageは、Google管理の暗号鍵とAES256暗号化アルゴリズムを使用して、すべてのオブジェクトデータを暗号化する。
- 顧客指定の暗号鍵(CSEK)または Google Cloud KMS で管理する顧客管理の暗号鍵(CMEK:Customer-Supplied Encryption Keys)のいずれかの暗号鍵タイプを使用することもできる。
- AWSで言うとEBS
- パフォーマンスは永続ディスクの総容量とインスタンスが持つvCPUの数に基づく。
- 永続ディスクの容量を増やすと、スループットとIOPSが増加。
- Linuxインスタンスでは、インスタンスに接続し、追加したディスク領域を使用するために、パーティションとファイルシステムのサイズを手動で変更する必要がある。
- ディスク上のパーティションを拡張した場合sudo resize2fsコマンドを用いてそのパーティションを指定する。