goodbyegangsterのブログ

備忘録的な

GlueのCustomClassfierの使い方

Glueのデータカタログ機能て、すごい便利ですよね。 Glueデータカタログとは、DataLake上ファイルのメタ情報を管理してくれるHiveメタストア的なやつで、このメタストアを、AthenaやRedshift Spectrumから簡単に参照出来ます。マネージドサービスとなるので…

EFS(Elastic File System)の利用方法

EFS(Elastic File System)を試してみます。 前提情報 EFSとは、AWSにおけるNFSのサービスですね。 以下の図は公式サイトのドキュメントから持ってきたものです。AWSネットワーク上に共有ファイルとなるファイルシステムが存在し、各サブネットにマウントター…

IAMユーザに多要素認証設定する時のIAMポリシー例

AWSにて、IAMユーザのログイン時に多要素認証をさせたい場合、当然、そのユーザ自身で自分のMFA設定も実施させたい訳で(そんなの管理者側でやってられない)、その際に利用するIAMポリシーとなります。AWSマニュアルにてズバリ紹介されているので、そのまんま…

ECRにコンテナイメージをpushする方法

AWS ECR(Elastic Container Registry)とは、AWSにて用意されたPrivate Docker Resistryサービスです。今回は、ローカルで作成したコンテナイメージを、こいつにpushする方法を記載します。 事前準備 まず、pushするためのイメージをローカルのdocker環境に用…

csvファイルをparquetファイルに変換する

pandasとApache Arrowを利用して、ローカル環境でcsvファイルをparquetファイルに変換する方法を記載します。ファイルサイズの小さいものであれば、今回の方法で対応できます。 そもそもparquetとは、 Apache Parquet is a columnar storage format availabl…

widnwosにdocker toolboxをインストールする

windowsのクライアント環境で、Docker Toolboxを利用して、docker環境を作成したときのメモです。 環境情報 Windows 10 Pro Docker Toolbox 18.03.0 Docker Toolbox vs Docker for Windows WindowsでDocker環境を作成するものに、 Docker Toolbox と Docker …

xfsのファイルシステムにて、利用されるinode数を変更する

xfsのファイルシステムでは、利用可能なinode数が可変になっています。これ、知りませんでした。ファイルシステムのクラスターサイズ(アロケーションユニットサイズ)内で、inode領域として確保されるサイズ・領域を変更することが可能となっており、これによ…

Redshift Spectrumを利用してみる

Glueのデータカタログを使用して、Redshift Spectrumを利用する方法について、まとめておきます。 公式のマニュアルはこちら。 Amazon Redshift Spectrum を使用して外部データにクエリを実行する - Amazon Redshift 利用にあたり前提条件 Redshift Cluster…

Glue 開発エンドポイントを、ローカルWindows PC上のZeppelinから操作する

Apache Zeppelin とは、Sparkをサポートするnotebookで、SparkをいじるためのJupyter notebookみたいなやつです。これを利用して、GlueのSparkを操作してみます。 Glueのコンソールには、EC2のZeppelinサーバをLaunchするための設定が用意されていますが、結…

Redshiftで、ファイルを指定してCOPY処理をする方法

Redshiftにデータを投入する方法は色々用意されていまうが、一般的には(且つ推奨されている方法では)、RedshiftのCOPYコマンドを利用する方法です。 基本的にロードしたいファイルをS3上に置いておき、COPYすることになるのですが、COPYコマンドのみでの実…

RedshiftとAurora(PostgreSQL)でdblinkを貼る方法

Redshiftには、マテリアライズド・ビューを作成する方法は用意されていません。Redshiftはデータウェアハウス向けに設計されたデータベースであるが故、以下の様な理由により、その機能を用意していないのだと考えています。 データウェアハウスは、恒常的に…

AWS Glueの開発エンドポイントの利用方法

GlueでPySparkプログラムを開発するための、開発エンドポイント作成方法について記載します。 公開鍵/秘密鍵の作成 Glueエンドポイントへのアクセスは、公開鍵/秘密鍵が必要となります。ので、OpenSSH形式の公開鍵/秘密鍵を、事前に作成しておきます。 エン…

Redshiftで、クラスターのノード数により、テーブルのデータサイズが増減するという話

題名の通りなのですが、増減します。詳しい解説は、以下のナレッジページにあります。 Redshift クラスターのストレージスペースについて理解する Redshiftのテーブルサイズを決定する要員として下記があります。 The number of populated slices on each Am…

RHEL7のEC2でルート領域を拡張する

EC2上のRedHat Enterprise Linux 7にて、ルート領域を拡張します。rootユーザで作業してます。 事前確認 今は10GBです。 # df -h | grep /dev/xvda2 /dev/xvda2 10G 924M 9.1G 10% / # # lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 10G 0 …

ACMにて、サブドメインまたはワイルドカードを利用してパブリック証明書の発行

ACMの証明書発行をたまに実施するのですが、たまに実施するが故に細かい所をいつも忘れているので、備忘録として記載しておきます。 サブドメインのパブリック証明書発行作業 ACMでのパブリック証明書発行のためには、ドメイン検証処理を行う必要があり、サ…

Redshiftにおいて監査ログを出力する方法

Redshiftにおいても、一般のRDBと同等レベルのAuditLogを取得可能です。その方法について、まとめておきます。基本的にマニュアルの記載をざっくりまとめたものなので、詳細については以下の公式マニュアルを見てみて下さい。 データベース監査ログ作成 - Am…

EMRでSpark環境を用意する

AWSのEMRを利用して、Apach Spark環境を作成してみます。EMRのバージョンは、5.14.0です。 EC2キーペアの用意 EMRで作成されたEC2で利用する、EC2キーペアを用意しておきます。 EMRでクラスタ作成 advanced optionsを選択 AWSコンソールのEMRコンソールに移…

Data Pipeline の ShellActivity で利用されるOSユーザについて

結論から言ってしまうと、 ec2-user です。「当たり前だろ」って感もありますが、マニュアルには書いてくれていないので。 尚、Task RunnerのEC2として利用できるAMIは、独自にも設定でき(LaunchさせたいAMIの指定パラメータ部分で、自分で作ったamiのidを指…

Redshiftを構築しながら思ったこと

Redshiftを触りつつ、思ったことを資料にまとめたので貼っておきます。以下のslideshareとなります。 Redshift構築メモ from goodbyegangster www.slideshare.net Redshiftに関しては、上記以外にも色々まだ書きたいことがあるので、ブログにメモしていきま…

WindowsでSpark(PySpark)環境をつくる

Windows10でPySparkを動かします。 JDKのインストール SparkそのものはScalaで作られているのでJavaの環境が必要です。Java Deployment Kit のバージョン7以降をインストールしておきます。Oracleのサイトからインストールexeファイルをダウンロードして実行…

WindowsのVargrantでCentOSを起動する

環境は以下です。 Windows10 VirtualBox 5.2.12 Vargrant 2.1.1 CentOS7 VirtualBoxのインストール 以下のサイトから、Windows用のVirutalBoxのモジュールを持ってきてインストール。 Oracle VM VirtualBox - Downloads | Oracle Technology Network | Oracl…

Data PipelineのSQL Activityで実行するSQLファイルに、複数のクエリを記載する

マニュアルには記載がないようなので、書いておきます。 Data PipelineのSQL Activityで、1度に複数のSQLクエリを実行できるか、という話です。S3に置いた1つのSQLファイルに、複数のステートメントを書いて実行きるのか否か、という話。結論からすると、 …

psqlで、パスワード入力を省略して、Redshiftに接続する

postgresqlと同じ方法で対応可能です。 方法1 環境変数を利用する PGPASSWORD という環境変数にパスワードを、事前に設定することで対応できます。ただし、この方法は推奨されていません。 この環境変数の使用は、セキュリティ上の理由から現在では推奨され…

Data Pipeline に関する備忘録

Data Pipeline を触っていた時の備忘録です。 (1) Data Pipelineコンソールからは、作成できない設定が多数 GUIからは Preconditions や Resourcesは設定できない。JSONの定義ファイルを作成して、インポートしてあげる。というか、GUIがそもそも分かりにく…

RedshiftのVacuumをしたら、全然終わらず、DISK FULLになって絶望した話

絶望しましたねえ。 レコード数は1億レコードは優に超えていたと思います。インターリーブソートキーを利用していて、全くVacuumしていないテーブルをVacuumしたところ、全く処理が終わらず、終らないどころかディスク使用率が100%に到達してしまいました。…

Linux系HULFTの動作ログ

HULFTのシスログってどこにあるんだよ、って調べた時のメモです。設定ファイル /usr/local/HULFT/etc/hulenv.conf に記載あるとのこと。 デフォルトだと、こんな感じですね。 # トレース出力ファイル名 tlogfile = /usr/local/HULFT/etc/trace 処理エラー発…

AWS EC2 に Python 3.6.5 と Pandas をインストールする

題名の通りです。 Amazon Linuxにデフォルトで入っているPythonは、2系のかなり古いものなので、3系の新し目のPythonを入れて、併せてpndasも入れます。 Amazon Linux用yumのリポジトリに Python 3.6.5 がいるので、それを引っ張ってくればいいようです。昔…

sedコマンドで、正規表現で一致した値を再利用して置換する

置換対象の文字列の箇所にて、再利用したい文字列を () で囲むと、置換後文字列にて、値を再利用できます。置換後文字列の部分にて、再利用したい文字を \1 \2 みたく指定してあげます。知らなかったのでメモ。 こちらのQiitaの記事を参考にさせて貰いました…

Redshiftにて、作成したDBユーザのSYSLOG ACCESS UNRESTRICTEDが正しく設定されているか調べる方法

Redshiftにて、ユーザのSYSLOG ACCESS UNRESTRICTEDが正しく設定されているかどうか、カタログテーブルや管理ビューで確認する方法はないそうです。 SYSLOG ACCESS UNRESTRICTED/RESTRICTED とは、 Amazon Redshift のシステムテーブルとビューに対するユー…

Windowsにpsqlをインストールして、Redshiftへ接続する方法

Windows10で利用する時の方法です。尚、SQL Workbench/Jをインストールする方法はこちら。 WindowsにSQLworkbench/J インストールして、Redshiftへ接続する方法 - goodbyegangsterのブログ psqlをダウンロードします。Windowsでは、psql単体のみでインストー…