技術書典の売上・入金をMoneyForward確定申告・会計に記帳する手順

この記事は、技術同人誌・商業執筆 Advent Calendar 2021 の8日目の記事です。技術同人誌・商業執筆 Advent Calendar 2021https://adventar.org/calendars/6410このエントリでは、技術書典の売上データをMoneyFoward会計にインポートするための手順をまとめておきます。</...

turtle形式でRDFデータを出力するためのEmbulkプラグイン(embulk-formatter-turtle)のご紹介

昨年、以下のエントリで、SPARQLのクエリで取得したデータを取り込むプラグインを書きました。今回は、逆向きのデータの流れ、手元のデータから、SPARQLのエンドポイント用のデータを出力するプラグインを書きました。SPARQLで取得したデータを入力とするEmbulkプラグイン(embulk-input-sparql)のご紹介<a href="https://takemikami.com/2020/10/17/SPARQLEmbulkemb...

AirflowのDAG単体テストの事始め

この記事は、データ基盤・BIツール・データエンジニアリング Advent Calendar 2021 の5日目の記事です。データ基盤・BIツール・データエンジニアリング Advent Calendar 2021https://qiita.com/advent-calendar/2021/dataengineering</p...

pre-commitをGitHubActions, VSCode, IntelliJ IDEAで利用する

pre-commitというGitのpre-commit Hookを管理するフレームワークがあります。このツールを利用すると、GitのHookスクリプトへのフォーマッター等の設定をシンプルにすることが出来ます。pre-commithttps://pre-commit.com/Hookスクリプトがあると、commitを行おうとした時に自動的にチェック...

PythonからRedis serverを立ち上げてアクセスする

Pythonのスクリプトで集計処理などを書いていると、時々、dictで扱うにはちょっと大きい、と思われる規模の集計が必要になる事があります。このような時には、Redis等のKey-Value-Storeを使うことになりますが、別にプロセスを立ち上げるとなると、実行手順が面倒になってしまいます。そこで、RedisServerの起動・終了をPythonのスクリプトで行う事を考えました。利用イメージとしては、単体テスト用に作ら...

Pythonでディレクトリ配下の全ファイルを1行ずつ処理する

Pythonでデータを処理するコードで、ディレクトリ配下の全ファイルに対して処理を書くとき。ディレクトリ配下のファイル一覧のfor文ファイル開くwith文ファイルを1行ずつ処理するwhile文終了条件のif文といった感じになるので、単純な処理の割にネストが深くなりがちです。そこで、次のように、すっきりと書けないか考えてみました。<li...

Git管理下で修正したファイルだけをサーバに上げるスクリプト

複数人の並行開発で、開発用サーバを共有している場合などに、Gitで管理しているファイルで、自分の作業ブランチで修正したファイルだけをサーバに上げたいことがあります。都度、修正したファイルを選んでアップロードするのは、手間がかかり、ミスの原因にもなるので、スクリプトを書いてみました。 # コンテナ技術などを使って、# 開発用サーバを共有しないようにすべきという意見もあるとは思いますが。。sync_dif...

pysparkでSparkSQLの文法チェックをする

ETL処理などをSpark SQLで行う場合に、SQLを設定ファイルに持たせておくケースは、よくあると思います。このような設定ファイルに書いてあるSQLが文法的に正しいかどうかを、単体テストレベルでざっとチェックできると、実サーバでの動作確認から手戻りが減らせると思い、方法を調べてみました。# 本来はダミーデータなどを作成して、# ローカルの環境で、実際にクエリを実行・テストすべきではありますが。やり...

Pylint-Airflowを使ってみた

Pylint-AirflowというAirflowのDAGのLinterがあったので、試してみました。Pylint-Airflow | GitHubhttps://github.com/BasPH/pylint-airflow2019年から更新されていないので、ちょっと不安だったのですが、問題無く動いてそうです。Airfl...

AirflowのConnectionのパラメータを既存のDBから設定する方法

AirflowのConnectionやVariableは、SecretBackendを使うと、AWS SSM ParameterやGCP Secrets Managerで管理することが出来ます。Alternative secrets backend | Apache Airflow<a href="https://airflow.apache.org/docs/apache-airflow/1.10.10/howto/use-alternative-secr...

Pythonで関数のソースコードを抜き出す

このエントリでは、Pythonを使って、Pythonの関数のソースコードを抜き出す方法を示します。日本語で説明しても、何をしようとしているのか分かりにくいと思うので、まず、コードと実行結果を示します。コード: get_func_code.py<span class="k...

IntelliJ IDEAを用いたAWS GlueのJob開発環境(Python版)の構築メモ

IntelliJ IDEA(or PyCharm)を用いた、ローカルPCでのAWS GlueのJobの開発環境の構築メモです。環境の作り方は、以下の公式ドキュメントに記載があるのですが、ある程度pysparkの知識が無いと、公式の説明だけで環境構築するのは無理があると思います。Developing Locally with Python | AWS Glue | AWS Documentation<a href="https:/...

venv環境にpysparkを設定する手順

本エントリでは、Pythonのvenv仮想環境にpysparkをセットアップする手順を示します。以下を参考に手順を示します。Installation | Apache Sparkhttps://spark.apache.org/...

AirflowからEMRを利用する時に、途中のStepから再実行出来るようにする

このエントリでは、AirflowからEMRを利用する時に、途中のStepから再実行出来るようにする方法を示します。以下のドキュメントに示されているとおり、Amazon EMR Operatorsを利用すると、EMRで処理を実行出来ます。Amazon EMR Operator | Apache Airflow<a href="https://airflow.apache.org/docs/apache-airflow-provide...

Versionを指定したローカルPCへのAirflowのセットアップ手順

Versionを指定したローカルPCへのAirflowのセットアップのメモです。ここでは、MWAA(Amazon Managed Workflows for Apache Airflow)の開発用に、Python 3.7, Airflow 1.10.12 のversionの組み合わせで環境を作ります。※2021年5月時点のMWAAで利用できる最新version以下のセットアップ手順を参考にしています。2.0系と1.10系のやり方を...

Author
takemikami
データエンジニア
・データ分析基盤の開発運用
・マーケティングデータ分析
研究発表履歴
facebook
twitter
LinkedIn
Hatena::Bookmark
YouTube
github
slideshare
Books
takemikami's shop
Twitter
Recent Posts
[PR]
タグ
PlayStation
Steam
About