タグ

awsとbigdataに関するsh19910711のブックマーク (31)

  • Amazon AthenaからIceberg形式のGlueテーブルの削除済みのスナップショットにタイムトラベルできないことを確認する | DevelopersIO

    Amazon AthenaからIceberg形式のGlueテーブルの削除済みのスナップショットにタイムトラベルできないことを確認する データアナリティクス事業部 インテグレーション部 機械学習チームの鈴木です。 今回は簡単な例ですが、Iceberg形式のGlueテーブルに対して、どのような場合にタイムトラベルができて、どうすればできなくなるのかをAmazon Athenaから確認してみました。 はじめに Amazon AthenaなどでサポートされているIcebergテーブルでは、スナップショットをもとに過去のデータの状態にタイムトラベルすることが可能です。 一方でスナップショットが残ってしまうことが課題となるケースもあります。例えば以下のSnowflakeの記事で紹介されているようなケースです。 GDPR:ベストプラクティス、一般的なリファレンスアーキテクチャパターン これはEU一般デ

    Amazon AthenaからIceberg形式のGlueテーブルの削除済みのスナップショットにタイムトラベルできないことを確認する | DevelopersIO
    sh19910711
    sh19910711 2024/06/20
    "Icebergテーブルでは、スナップショットをもとに過去のデータの状態にタイムトラベルすることが可能 / 一方でスナップショットが残ってしまうことが課題となるケースもあり (GDPR)"
  • Glue + Athenaのローカル開発環境をOSSで構築(MinIO + Trino + HIVE) | moritalous blog

    この環境をDocker Composeを使い構築します。 環境構築​MinIO​まずはS3を置き換えるMinIOからです。 ポイントは path-styleではなくvirtual-hosted styleを使用するため、MINIO_DOMAIN環境変数をセット他のコンテナから[バケット名].minioで名前解決できるようにhostnameを指定path-styleとvirtual-hosted styleの違いはこちらを参照ください。 version: '3' services: minio: image: quay.io/minio/minio hostname: bucket001.minio restart: always volumes: - ./minio/data:/data environment: - MINIO_DOMAIN=minio command: ["server

    Glue + Athenaのローカル開発環境をOSSで構築(MinIO + Trino + HIVE) | moritalous blog
    sh19910711
    sh19910711 2024/05/28
    "MINIO_DOMAIN環境変数をセット + 他のコンテナから[バケット名].minioで名前解決できるようにhostnameを指定 / Trino: 公式イメージが用意 + 必要なのはMinIOをカタログとして使用するための設定ファイル" 2022
  • GlueJobからRedshiftServerlessに直接インサートするサンプルデータパイプラインのご紹介|基幹システムのクラウド移行・構築・導入支援のBeeX

    はじめにこんにちは、半田(@handy)です。 AWS上でデータパイプラインを検討する際、よく見る構成としてはS3上のファイルをGlue Jobで変換した後、再度S3に格納してAthenaやRedshiftなどから参照する方法があります。 ただ、パフォーマンス要件からRedshiftにデータを取り込む必要がある場合、定期的にS3からのロードを行う必要があります。 今回の構成では途中に変換後用のS3を介することなく、Glue Jobから直接Redshiftにインサートを行うデータパイプラインを構築してみましたので、その構成や具体的な設定内容などについてご紹介します。 また、Glue Jobで変換する際、通常は一度S3に入れた変換前データをGlue Crawlerでクローリングし、メタデータをGlue DataCatalogに登録して、Glue DataCatalog経由でデータをロードする方

    GlueJobからRedshiftServerlessに直接インサートするサンプルデータパイプラインのご紹介|基幹システムのクラウド移行・構築・導入支援のBeeX
    sh19910711
    sh19910711 2024/05/04
    "Redshift Serverless: これまでSecrets Managerでのパスワード管理に対応していませんでしたが、2024年3月にアップデートがあり、現在では利用できるようになりました / 「redshift![名前空間名]-[DBユーザー名]」のフォーマット"
  • Spark 2.0 on EMR で Structured Streaming をやってみた

    “Distributed computing (Apache Hadoop, Spark, …) Advent Calendar 2016” の 12/19 担当ということで、Spark 2.0 on EMR で Spark Streaming と Structured Streaming をやってみた結果を書きます。 この記事でやること この記事では Spark 2.0 で、現在アルファ版の Structured Streaming をやってみます。 Structured Streaming とは、Spark SQL エンジンで実現されたストリーム処理の仕組みです。 従来型の Spark Streaming は RDD を DStream とよばれる Spark Streaming 特有のモデルを導入して扱うのに対して、Structured Streaming では Spark SQL

    Spark 2.0 on EMR で Structured Streaming をやってみた
    sh19910711
    sh19910711 2024/04/29
    "Structured Streaming: Spark SQL エンジンで実現されたストリーム処理の仕組み + バッチジョブと同じ書き方で Streaming 処理を実現 / 従来型の Spark Streaming は RDD を DStream とよばれる Spark Streaming 特有のモデル" 2016
  • AWS Glue での Spark のパフォーマンス (実行時間) を改善したい - クラウドエンジニアのノート

    はじめに 準備 データ 計測関数 CSV vs Parquet Parquet 参考 読み取り速度比較 データ作成 読み取り 読み取って Filter 処理した際の速度比較 データサイズ比較 csv gzip はどれくらい? まとめ Glue DynamicFrame vs Spark DataFrame データ読み取り速度比較 まとめ パーティション数の違いによる速度比較 準備 シャッフルが発生しない処理 シャッフルが発生する処理 まとめ Spark Join BroadCast Join まとめ キャッシュを使う キャッシュありなし比較 遅延評価? まとめ はじめに 最近 O'Reilly のLearning Spark 2nd Edition を読み始めました。 https://learning.oreilly.com/library/view/learning-spark-2nd/

    AWS Glue での Spark のパフォーマンス (実行時間) を改善したい - クラウドエンジニアのノート
    sh19910711
    sh19910711 2024/04/25
    "データ全体の読み取り速度は csv も parquet も変わらない / Filter 等を実行する場合 (Predicate Pushdown を使う場合) Parquet の方が読み取り早い / cache() や persist() は action ではなく transformation なので遅延評価" 2023
  • Amazon AthenaのクエリをAmazon S3 Object Lambdaアクセスポイントに対して実行してみました | DevelopersIO

    Amazon AthenaのクエリをAmazon S3 Object Lambdaアクセスポイントに対して実行してみました 初めに 少し遡り2023/10頃のアップデートですがAmazon AthenaとAmazon S3 Object Lambdaの統合のアップデートがありました。 Amazon S3 Object LambdaはS3バケットからデータを取得し返却するタイミングでLambdaの処理によりデータを加工することができるアクセスポイントで、こちらを指定し経由することで個人情報のマスキングなどの処理ができるため派生データを作成せず1マスタ複数パターンを実現することが可能です。 上記のアップデートによりはAmazon Athenaがこちらのアクセスポイントを指定しクエリを実行に応じデータを加工し参照できるようになったため試してみます。 やること 以前DMARCレポートをAmazon

    Amazon AthenaのクエリをAmazon S3 Object Lambdaアクセスポイントに対して実行してみました | DevelopersIO
    sh19910711
    sh19910711 2024/04/25
    "S3 Object Lambda: S3バケットからデータを取得し返却するタイミングでLambdaの処理によりデータを加工することができる / Lambda関数の呼び出しを見てみると稼働自体は並行で行われますが、起動自体はファイル単位"
  • Amazon EMR のバージョンアップ 2/3:メジャーバージョンアップで遭遇した問題 - Repro Tech Blog

    前回の続きです。 EMR 5.36.1 から EMR 6.6.0 への更新について書きます。 EMR 5.36.1 から EMR 6.6.0 への更新 アプリケーション等 EMR 5.36.1 EMR 6.6.0 Tez 0.9.2 0.9.2 Hue 4.10.0 4.10.0 Hive 2.3.9 3.1.2 Hadoop 2.10.1 3.2.1 Presto 0.267 0.267 Trino N/A 367 Amazon Linux 2 2 このバージョンアップでは Hive と Hadoop のメジャーバージョンアップがあるので、Upgrade Amazon EMR Hive Metastore from 5.X to 6.X | AWS Big Data Blog のとおりに Hive メタストアをマイグレートしました。 その後、検証用 EMR cluster を作成してクエ

    Amazon EMR のバージョンアップ 2/3:メジャーバージョンアップで遭遇した問題 - Repro Tech Blog
    sh19910711
    sh19910711 2024/04/21
    "UDF を使ったクエリが動作が怪しくなり / Vectorized Query Execution を無効にして試したところ、独自開発した Hive UDF の部分で型のエラーが発生 / 修正するとクエリは通ったのですが、実行時間が大幅に長くなってしまい"
  • AWS Glue × Apache Iceberg で構築する更新可能なデータレイクテーブル

    こんにちは。シンプルフォーム株式会社 にてインフラエンジニアをしています、山岸です。 社内向けに運用しているデータ分析基盤について現状抱えているいくつかの課題を克服すべく、最近は更改に向けた検証に取り組んでいます。今回は取り組みの一つである「AWS Glue と Apache Iceberg によるデータレイクテーブル構築」についてご紹介したいと思います。 概要 当社ではデータ分析基盤の ETL 処理に AWS Glue を使用しています。社内のデータ分析業務等のため、RDS データベース等のデータソースから日次で S3 上に構築された DWH に連携しています。 現行のデータ分析基盤では、DB テーブル上のデータを毎日全件洗い替えています。このような処理方法は ETL 実装や問題発生時の復旧が簡単である一方、ETL 処理のコスト効率が悪く、データ量の増加に伴って処理時間も長くなっていきま

    AWS Glue × Apache Iceberg で構築する更新可能なデータレイクテーブル
    sh19910711
    sh19910711 2024/04/18
    "BI ツールとして ECS サービス上に構築した Redash + データソースとして Redshift Serverless + ETL 処理を Glue ジョブで実装 / Iceberg V1, V2 テーブルに対して、Redshift Spectrum を使用した外部表としての読み取りがサポート"
  • Task nodes で EMR クラスタのスケールインを高速化する - sambaiz-net

    EMR クラスタは YARN の ResourceManager などが動く Master (primary) node と、 Core nodes および Task nodes から構成される。 Hadoop YARN によってアプリケーションにリソースが割り当てられる流れと割り当てられているリソース量の確認 - sambaiz-net Core nodes と Task nodes のリソースはいずれもタスクの実行に用いられるが、 Core nodes が HDFS の DataNode となるのに対して Task nodes はならない。 そのため、 Core nodes はデータが失われないように Decommission されてから Terminate される必要があるが、 スパイク防止のためレプリケーションの帯域が制限されることから、スケールインするのに時間がかかってしまう。

    Task nodes で EMR クラスタのスケールインを高速化する - sambaiz-net
    sh19910711
    sh19910711 2024/03/08
    "EMR 6.x から YARN のノードラベル機能がデフォルトでオフになり、Task nodes でも ApplicationMaster が実行される / Core nodes のリソースと数を大幅に減らしたところ、CPU使用率が貼りついて task の実行が大幅に遅くなることが" 2023
  • AWS Glueでデータレイクフレームワーク(Hudi)を試してみた - Qiita

    Copy On Write Table Copy On Write Tableのファイル スライスにはベース ファイルとカラムナ ファイルのみが含まれ、各コミットはベース ファイルの新しいバージョンを生成する。 列方向のデータのみが存在するように、すべてのコミットで暗黙的に圧縮する。 その結果、書き込み増幅 (受信データの 1 バイトに対して書き込まれるバイト数) ははるかに大きくなり、読み取り増幅はゼロになる。 主に読み取り負荷が高い分析ワークロードにとって望ましい特性。 下記は、Copy On Write Tableのテーブルに書き込まれて、2つのクエリが実行されている場合に概念的にどのように機能するか示したもの。 ※ 出典:Apache Hudiの Table & Query Types Merge On Read Table Merge On Read Tableは、Copy On

    AWS Glueでデータレイクフレームワーク(Hudi)を試してみた - Qiita
    sh19910711
    sh19910711 2023/03/28
    ヒューディかと思ってた / "Apache Hudi: 発音は、hooodieとのこと + ストリーミングだけではなく増分バッチパイプラインもサポート / メタデータ テーブルの主な目的は、「ファイルのリスト」操作の要件をなくすこと"
  • Apache Bigtop の概要と最新動向

    記事は, Distributed computing (Apache Spark, Hadoop, Kafka, …) Advent Calendar 2020 18日目の記事です。 この記事では, Apache Bigtop (以下 Bigtop) という OSS プロジェクトの概要と、 2020年12月時点の最新動向について紹介します。 Bigtop の概要と歴史 Bigtop は, Apache Hadoop エコシステムの環境構築やテストを容易にするための Apache Software Foundation 傘下のプロジェクトで、以下のような機能を提供します。 Hadoop や Spark などのビッグデータ関連 OSS を, deb や rpm 形式にビルドしたバイナリパッケージ。 パッケージのインストールとその後の環境設定 (以下、併せてデプロイと呼びます) を自動化するた

    sh19910711
    sh19910711 2022/12/21
    2020 / "Apache Bigtop: 2011年に Apache incubator 傘下のプロジェクトとして活動を開始 + 2012 年に TLP に昇格 / EMR では、2015年にリリースされた バージョン 4.0 から、インストールされるパッケージのビルドに Bigtop を利用しており"
  • AWS Glue Flexオプションについて - Qiita

    AWS Glue Flexオプション AWS Glueでは2022/08/09にFlexタイプのジョブ実行モードというのが追加されました。 FlexタイプのジョブはEC2のスポットインスタンスのような非占有型のコンピュートキャパシティ上で動作します。 そのため、リソースの使用状況に応じてジョブの開始に時間がかかる場合などがありますが、その分コスト的には通常のジョブに比べ安価になっています。 テスト用途のジョブや実行時間の制約の緩い夜間のバッチジョブなどでコストを安価に抑えながらジョブを実行できるオプションになります。 Flexオプションのコスト 2022年11月現在、東京リージョンではFlexオプションは通常のジョブに比べ最大34%のコスト削減効果があります。 通常 Flex Flexオプションの特徴 FlexオプションはGlue 3.0またはそれ以降のバージョンのETLジョブで利用可能で

    AWS Glue Flexオプションについて - Qiita
    sh19910711
    sh19910711 2022/11/13
    "AWS Glueでは2022/08/09にFlexタイプのジョブ実行モードというのが追加 / 2022年11月現在、東京リージョンではFlexオプションは通常のジョブに比べ最大34%のコスト削減効果 / WAITING状態は最大20分"
  • Building AWS Glue Data Catalog Client for Apache Hive Metastore - きどたかのブログ

    長い道のりを経て、なんとかCodeBuildで、Sparkを動かすためのなんちゃってEMR(without EMRFS)を用意したときの記録です。 GitHub - awslabs/aws-glue-data-catalog-client-for-apache-hive-metastore: The AWS Glue Data Catalog is a fully managed, Apache Hive Metastore compatible, metadata repository. Customers can use the Data Catalog as a central repository to store structural and operational metadata for their data. AWS Glue provides out-of-box int

    Building AWS Glue Data Catalog Client for Apache Hive Metastore - きどたかのブログ
    sh19910711
    sh19910711 2022/11/06
    2021 / "なんちゃってEMR: Hiveを2回ビルドして、Glue Clientをビルドして、Sparkもビルド + 1回通すのに40分は / aws-cliはインストールしない: Glue Clientだったり、hadoop-awsだったりの認証プロバイダの探索順の関係で干渉したりする"
  • EMR上のApache AtlasにAWS Glueのデータカタログ情報をインポートしてみた - YOMON8.NET

    Hiveのメタデータ管理ができるApache Atlasですが、こちらのブログを参考にGlueのカタログ情報もインポートしてみました。 aws.amazon.com EMRのHiveメタストアとしてGlueを使うための設定を準備 EMRクラスタの起動 EMRクラスタへ接続 Glue接続確認 AtlasへHive(Glue)のデータをインポート AtlasへGlueのデータカタログのインポート Atlasへ接続 EMRのHiveメタストアとしてGlueを使うための設定を準備 こちらを参考に設定ファイルの準備 $ cat <<EOF > ./glue_settings.json [ { "Classification": "hive-site", "Properties": { "hive.metastore.client.factory.class": "com.amazonaws.glue

    EMR上のApache AtlasにAWS Glueのデータカタログ情報をインポートしてみた - YOMON8.NET
    sh19910711
    sh19910711 2022/07/01
    2019 / "Apache Atlas: Hiveのメタデータ管理ができる / /apache/atlas/bin/import-hive.sh というインポート用のバッチが準備されています / Javaのクラスパスに /usr/lib/hive/auxlib を追加 + これが無いと以下のようなエラー"
  • 更新できるデータレイクを作る 〜Apache Hudiを用いたユーザデータ基盤の刷新〜 - Gunosy Tech Blog

    広告技術部のUT@mocyutoです。 こちらの記事はGunosy Advent Calendar 2021の4日目の記事です。 昨日は内田さんの その設定、pyproject.tomlに全部書けます - Gunosyデータ分析ブログ でした 今回はApache Hudiを用いたユーザデータ基盤の刷新を紹介します。 背景 仕組み 課題 対応策 データの持ち方を変える Apache Hudiとは 構成 Glue + PySpark Athenaによる抽出 移行し終えて 背景 Gunosyの広告システムではユーザに対して最適な広告を届けるために、接触済みのユーザに対して何度も同じ広告を出さないようにする仕組みを提供しています。 例えば、すでにある広告Aをクリックしたユーザには広告Aは再度配信しないのような設定です。 仕組み この仕組みを実現するためには以下のようなアーキテクチャになっていました

    更新できるデータレイクを作る 〜Apache Hudiを用いたユーザデータ基盤の刷新〜 - Gunosy Tech Blog
    sh19910711
    sh19910711 2021/12/08
    "Apache HudiはS3などデータレイクのファイルを更新、削除ができるデータフォーマット / Hudiを利用した理由 > Glue Data Catalogへのsync + Athenaの読み込みの公式サポート / Hudiの次のバージョンでは Kafkaの対応やdbtへの対応なども"
  • Spark 3 Reduced Our EMR Cost by 40%

    sh19910711
    sh19910711 2021/06/26
    "The previous S3 committers were uploading files in a temporary location in S3 and then renaming them to their final destination / new S3A committers reduced our S3 write time from minutes to seconds"
  • EMR 6.0.0 (ベータ) を使って Docker と Hadoop 3 を用いた Spark アプリケーションの依存関係の管理を簡素化

    EMR 6.0.0 (ベータ) があれば、Spark 2.4.3 と Hadoop 3.1.0 を使用して、Docker Hub と Amazon Elastic Container Registry (ECR) の Docker イメージを使ってアプリケーションやライブラリの依存関係を定義することができます。 現在、PySpark と SparkR のユーザーは、クラスターの各ホストにそれらの依存関係をインストールすることが必須となっています。それにより、マルチテナントのクラスターを運用しているチームは、必死で特定のライブラリバージョンに対応したり、依存関係を管理したりすることとなり、開発者の生産性は制限されて、使用するクラスターの準備にはますます時間がかかり、クラスターのアップグレードの複雑さは増す結果となっています。 Hadoop 3、DockerEMR を使うことで、Spark

    EMR 6.0.0 (ベータ) を使って Docker と Hadoop 3 を用いた Spark アプリケーションの依存関係の管理を簡素化
    sh19910711
    sh19910711 2020/02/09
    "EMR リリース 6.0.0 (ベータ) には、Amazon Linux 2 と Amazon Corretto JDK 8 のサポートが含まれています"
  • Hive on EMR で S3 Select を有効化してI/O量を削減する - ablog

    Hive on EMR で S3 Select を有効化すると、I/O量が削減され、実行時間が短縮することを確認した*1。 検証結果 通常 hive> select count(tax_region) from sh10.json_sales★ where tax_region = 'US'; Query ID = hadoop_20181125201846_ceb61407-d775-4399-a4ff-b123de4794ea Total jobs = 1 Launching Job 1 out of 1 Status: Running (Executing on YARN cluster with App id application_1543070548885_0006) -------------------------------------------------------

    Hive on EMR で S3 Select を有効化してI/O量を削減する - ablog
  • AWS Glue で 億超えレコードなテーブルからETLする - Qiita

    この記事はfreee データに関わる人たち Advent Calendar 2019の11日目です。 シンプルにAWS Glueで RDB(MySQLとか)から巨大なテーブルデータを取り出すときの話です。 tl;dr Glueを使ってMySQLなどRDSから億単位のデータを引っこ抜くときは、Glueの並列取り込み機能を使わず、sparkの機能を使おう やりたいこと & 問題 RDB(MySQL)の一つのテーブルが 1億件以上データを持っている そのままGlueで取り込むと遅い -> なんかGlueで並列読み込みする機能があるらしい Glueの並列読み込み機能試したけど、クソ遅い Spark自身の機能を使った -> めちゃ早くできた Glue と Sparkの関係 用語・語弊を生みそうなので、最初に整理 Glue は Managed Sparkと言い換えられます。Sparkを使いやすくしたも

    AWS Glue で 億超えレコードなテーブルからETLする - Qiita
    sh19910711
    sh19910711 2020/01/04
    "RDB(RDS含む)の場合は Glueのウィザードがソレっぽいコードをdyfで自動生成してくれるが、それで対応できるのはせいぜい1000万件レコード以下です。それ以上の場合はdfでsparkの機能でやるとよい"
  • New – Insert, Update, Delete Data on S3 with Amazon EMR and Apache Hudi | Amazon Web Services

    AWS News Blog New – Insert, Update, Delete Data on S3 with Amazon EMR and Apache Hudi Storing your data in Amazon S3 provides lots of benefits in terms of scale, reliability, and cost effectiveness. On top of that, you can leverage Amazon EMR to process and analyze your data using open source tools like Apache Spark, Hive, and Presto. As powerful as these tools are, it can still be challenging to

    New – Insert, Update, Delete Data on S3 with Amazon EMR and Apache Hudi | Amazon Web Services