昨年、以下のエントリで、SPARQLのクエリで取得したデータを取り込むプラグインを書きました。今回は、逆向きのデータの流れ、手元のデータから、SPARQLのエンドポイント用のデータを出力するプラグインを書きました。SPARQLで取得したデータを入力とするEmbulkプラグイン(embulk-input-sparql)のご紹介<a href="https://takemikami.com/2020/10/17/SPARQLEmbulkemb...
この記事は、データ基盤・BIツール・データエンジニアリング Advent Calendar 2021 の5日目の記事です。データ基盤・BIツール・データエンジニアリング Advent Calendar 2021https://qiita.com/advent-calendar/2021/dataengineering</p...
pre-commitというGitのpre-commit Hookを管理するフレームワークがあります。このツールを利用すると、GitのHookスクリプトへのフォーマッター等の設定をシンプルにすることが出来ます。pre-commithttps://pre-commit.com/Hookスクリプトがあると、commitを行おうとした時に自動的にチェック...
Pythonのスクリプトで集計処理などを書いていると、時々、dictで扱うにはちょっと大きい、と思われる規模の集計が必要になる事があります。このような時には、Redis等のKey-Value-Storeを使うことになりますが、別にプロセスを立ち上げるとなると、実行手順が面倒になってしまいます。そこで、RedisServerの起動・終了をPythonのスクリプトで行う事を考えました。利用イメージとしては、単体テスト用に作ら...
Pythonでデータを処理するコードで、ディレクトリ配下の全ファイルに対して処理を書くとき。ディレクトリ配下のファイル一覧のfor文ファイル開くwith文ファイルを1行ずつ処理するwhile文終了条件のif文といった感じになるので、単純な処理の割にネストが深くなりがちです。そこで、次のように、すっきりと書けないか考えてみました。<li...
複数人の並行開発で、開発用サーバを共有している場合などに、Gitで管理しているファイルで、自分の作業ブランチで修正したファイルだけをサーバに上げたいことがあります。都度、修正したファイルを選んでアップロードするのは、手間がかかり、ミスの原因にもなるので、スクリプトを書いてみました。 # コンテナ技術などを使って、# 開発用サーバを共有しないようにすべきという意見もあるとは思いますが。。sync_dif...
ETL処理などをSpark SQLで行う場合に、SQLを設定ファイルに持たせておくケースは、よくあると思います。このような設定ファイルに書いてあるSQLが文法的に正しいかどうかを、単体テストレベルでざっとチェックできると、実サーバでの動作確認から手戻りが減らせると思い、方法を調べてみました。# 本来はダミーデータなどを作成して、# ローカルの環境で、実際にクエリを実行・テストすべきではありますが。やり...
Pylint-AirflowというAirflowのDAGのLinterがあったので、試してみました。Pylint-Airflow | GitHubhttps://github.com/BasPH/pylint-airflow2019年から更新されていないので、ちょっと不安だったのですが、問題無く動いてそうです。Airfl...
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の関数のソースコードを抜き出す方法を示します。日本語で説明しても、何をしようとしているのか分かりにくいと思うので、まず、コードと実行結果を示します。コード: get_func_code.py<span class="k...
IntelliJ IDEA(or PyCharm)を用いた、ローカルPCでのAWS GlueのJobの開発環境の構築メモです。環境の作り方は、以下の公式ドキュメントに記載があるのですが、ある程度pysparkの知識が無いと、公式の説明だけで環境構築するのは無理があると思います。Developing Locally with Python | AWS Glue | AWS Documentation<a href="https:/...
本エントリでは、Pythonのvenv仮想環境にpysparkをセットアップする手順を示します。以下を参考に手順を示します。Installation | Apache Sparkhttps://spark.apache.org/...
このエントリでは、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のセットアップのメモです。ここでは、MWAA(Amazon Managed Workflows for Apache Airflow)の開発用に、Python 3.7, Airflow 1.10.12 のversionの組み合わせで環境を作ります。※2021年5月時点のMWAAで利用できる最新version以下のセットアップ手順を参考にしています。2.0系と1.10系のやり方を...
Macでデュアルモニタを使って作業中している時に、サブモニタに全画面表示でカレンダー、メール、Slackを表示させているのですが。これらを切り替える時にマウスカーソルをサブモニタに移動させるのが手間なので、キーボードショートカットで切り替えが出来ないかを考えました。Automatorを使って簡単にできたのでメモとして残しておきます。 以下のサイトを参考にさせていただきました。Apple Scriptをショートカ...