AWS GlueとTalendを使ったETL処理のメリットとデメリットをまとめてみた

AWS作業担当者ではないけれど、ETL処理の構成について知っておかないといけないとなって調べてみましたが、自分がほしい違いやまとめがなかったので、一旦まとめました。

 

  1. ETL処理とは?
  2. 用語解説1 ~AWS Glue(グルー) とは~
  3. 用語解説2 ~AWS Lambdaとは~
  4. 用語解説3 ~Talend とは~
  5. AWS Glue+lambdaでETL処理を行うメリット/デメリット
  6. AWS EC2 + talendでETL処理を行うメリット/デメリット
  7. 最後に

 

ETL処理とは?

 

そもそも、なぜETL処理をするのか?

それは、きれいなデータでデータ分析をするためです。分析には、データベースを使うことが多く、そこにデータを入れるために必要な処理がETL処理です。

例えば顧客情報の名前に半角スペースが入っている状態(ビット君)

⇒ ETL処理をした後には、半角スペースがない状態(ヒット君)となり扱いやすくなります。

 

ETL処理では、処理の流れ(パイプライン)を構築します。

たとえば「どこにデータを貯めて、どこからデータを取ってきて、どう加工して、どこにどうやってもっていくのか」という流れです。

f:id:TMLabo:20191024095249p:plain

ETLのフロー

ETL処理をフルスクラッチでプログラミングしても良いのですが、作業を効率化するためにETLツールを使うことが多いです。

それを効率的にできるツールが、"AWS Glue"と"talend"です。

 

用語解説1 ~AWS Glue(グルー) ~ 

AWS Glueとは?

Apache Spark」というツールがあって始めて利用できるサービスです。

サーバ運用に関してはAWSが全ての作業を代行しています。

 

特徴は以下の2点。

・サーバレス(サーバ管理が不要)

・値の編集やフィルタリングにPythonのスキルが必須

 

AWS GlueはETL処理を準備+実行するAWSのサービスの一種です。

 

f:id:TMLabo:20191024095353p:plain

ETL AWS Glueのフロー

単純な処理でしたら自動生成したコードだけETL処理を実行できると思いますが、

値の編集やフィルタリングが必要な場合はプログラミングが必要です。

 

用語解説2 ~AWS Lambda~

Lambdaとは?

f:id:TMLabo:20191024095447p:plain

ラムダ

・作成したプログラムファイルを実行できるだけの環境(ツール)です。

特徴

・サーバー運用が不要です。

f:id:TMLabo:20191024095507p:plain

実際の編集画面

 

用語解説3 ~Talend ~

Talendとは?

これはAWSのサービスではありません。単なるETL開発ツールです。

・データ統合から、アプリケーション連携、ビジネス管理まで行える画期的な

 統一プラットフォームです。

OSS版(無償)は世界中の約4000社で利用されているデータ統合・連携ツールです。

 

Talendの特徴

・「バッチジョブを実現するETL」「リアルタイム連携を実現するESB」を同一プラットフォーム上で開発・運用できます。

・バッチとかの裏方で走らすジョブをGUIで簡単につくれるよ!というのが売りです。

・主な操作方法としては、

①Talendでジョブの流れを書いて、処理内容のバッチファイルを登録していく。

②job実行してほしいデータを取得。

 と、いたってシンプルです。

f:id:TMLabo:20191024095613p:plain

実際の編集画面(Talend)

 

 

AWS Glue+lambdaETL処理を行うメリット/デメリット

PythonエンジニアがAWSサービスを駆使してETLを行う構成を前提にしています。

 

メリット

デメリット

変換処理を自由にカスタマイズできる

学習コストとして、pythonのプログラミング知識が必要

AWSの他サービスとの連携でスケーラビリティを確保できる。

AWS以外(Azure)には連携が難しい

サーバーレスによるインフラ面の料金コストが最小化

Glueからの操作だけでは複雑な処理は不可。大まかなプロセスまでは自動生成。

ETLの出力先をS3に統一することで、障害発生やメンテの影響が、DWH側に及ばない

 

 

f:id:TMLabo:20191024100048p:plain

構成図の例

lambda関数で、以下の流れを実行して処理します。

①処理対象をクロールする

②クローラを実行してカタログTableを作成。

(※データベース内でETL処理対象をリスト化している)

③Job実行

 

このlambda関数を使用することによりプログラムで事前に設定が可能なので、エラー時の対応を設定できます。

 

 

AWS EC2 + talendETL処理を行うメリット/デメリット

ETL処理はTalendで全て行う構成になります。

AWS EC2の環境を利用します。

メリット

デメリット

図(GUI)を用いてフローを作成できるため、プログラミング言語の学習コストがほぼない。

日本語ドキュメントはあるが、英語が必要な箇所も多々ある。

様々なデータソースにアクセスするため800を超えるコンポーネントを標準で提供されている。具体的には以下の通り。

(Hadoop、NoSQL、AWS、テキストファイル、RDBMS、Azure等)

コンポーネントを別途購入する必要はない。

対応するコンポーネントが無くても自作できるが、開発工数が掛かる。

MQTTやAMQPをサポートし、計測データ、センサデータ、制御データなど”モノ”が発信する情報を収集することも可能。

Talend Open Studioは無料で利用できる。

(有料はあるがほぼ無料枠で対応可)

OSSなので、製品に不具合があってもTalend社には、バグフィックスの義務がない。

商用ライセンスは基本的にデータ量やサーバー台数には依存せず、

開発者・システム運用者単位の使用料のため初期投資を抑えることができる。

よって、低コストでのデータ統合が可能。

サーバーは必要。よって、サーバー運用費は掛かる。

 

 最後に

ツールの選定と最適な組み合わせは、各社システム構成やデータの性質によって変わってくるものなので難しいです。

 

契約の法律用語(備忘録)

f:id:TMLabo:20190926164408j:plain

こんにちは。

 

今回は企業間での法律事に関わる際の前提知識のおさらいをします。(備忘録です)

 

 

詳しい用語はこちらがお勧めです。

http://www.hpsca.hokkaido-c.ed.jp/63kenkyuutaikai/oshima/25.pdf

 

用語解説

「みなす」とは

「●●というように確定させる」という意味。

例)納入した商品について、*10日以内に検収し、瑕疵があれば書面で通知する。

  その期間に通知がなれれば、検収合格とみなす。

*1

 

「故意」とは

日常的な意味では、「意図的なこと」 「わざとすること」等の意味。

民法上では、「結果の発生を認識しながら容認して行為すること」となる。

 

未必の故意」とは

刑法等で出てくる概念で、「100%犯罪をしようと思っている訳ではないが、結果的に犯罪をする

結果になっても構わないと考えて行動する心理状態」

 

「過失」とは

必要とされる注意義務に反する状態や不注意のこと。

結果を避けることが可能であったのに、不注意で悪い結果を生じさせた場合等を指す。

 

「善意」と「悪意」

用語

日常用語

法律用語

善意

善良な意思

事情を知らない。

【善意の第三者】とは、善人のことではなく、

事情を知らない第三者という意味。

悪意

害悪を与えようという悪い意思

事情を知っている。

【悪意である場合】とは、悪意のある場合ではなくて、

事情を知っている場合となる。

 

例)「善意無過失」とはどんな意味か?

   A:事情を知らずに、知らないことについて過失がない場合のこと。

 

 

 

善良な管理者の注意義務(善管注意義務

委任などの契約において、その立場を踏まえて(プロであることなど)一般に期待される高い注意義務のこと。

※善人か、悪人かは関係なく、プロとしての高度な注意義務と考える。

 

自己のものと同一の注意義務(自己の財産と同一の注意義務)

善管注意義務ほど高度な注意義務ではなく、仕事をする上でプロとしての注意義務を負っているのではなく、自分のものと同程度に扱えば良いという低い注意義務のこと。

 

解除と解約

さかのぼって効力がなくなる

将来の効力がなくなる

一般的には、解除する理由はないが、任意の理由により契約の効力をなくしたいときに

「解約」を使用する

 

 

印鑑・書類

 

印鑑

印章

ハンコ本体のこと

 

印鑑

官公庁や銀行等に届出をした印影

【実印】印鑑登録されているもの

認印】印鑑登録されていないもの

日常用語では印章のこと

実印/認印 どちらを使用しても、契約書の効力に影響はない。

印影

印章を押した際に浮かびあがるマーク

 

拇印

指先で押された印影。

指紋鑑定すれば識別能力は高い。

左右どの指という規制はないが、左手人差指が一般的

書き判

姓名等を手書きして丸で囲むもの

苗字だけ、縦に書いて丸で囲む。

契約実務では、拇印や書き判で契約の意思があることを証明することができ、法的効力を発揮することもある。

印鑑について詳しく

押印

「記名押印」の省略言葉

記名(ゴム印やスタンプ、PCの文字、他人の代筆など

本人の自筆以外によって記された氏名)+印鑑を押す行為

捺印

「署名捺印」の省略言葉

署名(自筆で氏名を書くこと)+印鑑を押す行為

契印

ページとページの間に押印

複数枚の書面が一体であることを証する

割印

複数の契約書の間で押印

複数作成された契約書の一体性を証する

消印

貼付した印紙と契約書の間に押印

印紙税法上の義務

訂正印

抹消・挿入した箇所に押印

訂正が当事者の合意のもとで行われたことを証明する

欄外に押印した上で「○行目○字加入、○字削除」等と記載する

捨印

形式的な修正の為に空欄に押印

必要のある場合のみに用いるべき

 

 

 

書類の種類

原本

当該文書そのもの

契約書原本、判決原本 等

謄本

原本の内容を変化させていない写し

 

抄本

原本を抜粋した写し

 

正本

謄本の一種

原本と同一の効力のあるもの

判決正本 等

 

書類の注意点

・法人の場合、締結者の権限が示されている必要あり。(代表取締役:会社全体の包括代表権)

 

・製本テープを使用する場合、前・後両方に契印するのがベターだが、後ろのみの契印でも可。

 

訂正印は原則、契約書には使用しない。

→手書きは数字の改変等が容易でありリスク大 なのでPCで打ち直す。

 

・捨印は契約書には押さない。

訂正印として使用されてしまい、相手に内容を変更されてしまうリスクあり。

 

 

法人使用の印鑑

 

角印

 

f:id:TMLabo:20190926195237p:plain

法人で使用される印鑑。

「株式会社○○」、「株式会社○○之印」 等と彫られる。

用途:法人の認印として、契約書や領収書など

「社判」「社印」とも呼ばれる。

丸印(代表印)

 f:id:TMLabo:20190926163717p:plain

法人で使用される印鑑。

内側に「代表取締役印」と彫られるのが一般的。

用途:法人の実印として、重要な契約書、議事録、登記申請書類など

「代表印」とも呼ばれる。

 

契約書の作成

自社で契約書(案)を作成する場合は以下の利点がある。

1. 自社に有利な工夫を凝らすことができる

2. 相手方に多量の変更を求めて不快感を与えない

3. 自社雛形を使用することで、統一的管理ができる

 

 

相手方が契約書(案)を作成する場合は以下の留意点がある。

1. 相手方との力関係の把握

自社優位の場合:自社作成の契約書(案に差替えを依頼する。又は大幅な変更を行う。

相手優位の場合:特に変更必要な箇所に限定して変更を提案。

        契約書はそのままにして覚書などで実質的変更を求めることも考える。

 

相手方との関係性を法務部にも伝える(営業的立場)

相手企業の法務が強い場合、修正を提案すると時間がかかり、進まない。

企業によるが、「契約書」と「覚書」では承認フローが違う場合があるので、現場レベルの約束ごとは「覚書」で交わす方法も有効。         

 

  

 

曖昧な文言を使わない

「直ちに」・「速やかに」・「遅滞なく」・・・具体的な日数が不明確

例:検収期間条項で、 「受領後速やかに」

  → 個々の受発注書(個別契約)で当該受発注について「受領後○日以内」

「直接損害」・「間接損害」・・・損害の区分が不明確

  → 「○○・△△等の直接損害」

「重過失」・「軽過失」・・・過失の程度が不明確

例:免責条項で、「故意または重過失のない限り」

  → 個々の受発注書(個別契約)で「故意又は○・△等の重過失のない限り」

 

以上。

*1:この時、通知がない状態は確定的に「検収合格」(覆すことはできない)となる。