Bash スクリプトのベストプラクティス

ネット上に散在している Bash スクリプトのベストプラクティスについて、僕なりにまとめたメモです。 VS Code での開発を前提に記載しています。 VS Code Extensions VS Code を利用するのであれば、以下の Extensions を利用できます。 language server mad…

WSL のディスク領域を解放する

WSL で利用されている vhd のファイルを最適化したときの備忘録です。 環境情報 Windows 10 Pro (10.0.19045 N/A ビルド 19045) WSL 2.0.14.0 手順 事前の確認 事前に WSL 上のディストリビューションを停止させておきます。 PS > wsl --shutdown PS > wsl -…

AWS CDK に入門する

AWS CDK に入門した時の備忘録です。利用言語は TypeScript です。 参考資料 BlackBelt (AWS CDK の基本的な情報) https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2023_AWS-CDK-Basic-1-Overview_0731_v1.pdf https://pages.awscloud.com…

Google Cloud Data Engineer Professional 学習メモ

全般 BigQuery データ取り込み クエリ Routine セッション 外部データソースへのクエリ テーブルスキーマ ネスト(STRUCT)され、且つ繰り返しフィールド(ARRAY)のあるスキーマ 検索インデックス BigQuery BI Engine BigQuery Migration Service BigQuery …

Terraform で Cloud Workflows をデプロイする

Cloud Workflows を Terraform で扱います。以下はリファレンスのページ。 Cloud Workflows リファレンス 以下は公式チートシート。ぼーと眺めている。 Cloud Workflows - Syntax cheat sheet 以下のリポジトリは、Google の中の人が push してくれている Cl…

GNU Markfile の基本的な記法を調べる

GNU Makefile の基本的な書き方を確認します。 GNU Make 公式のマニュアル。 GNU Make Manual 2005 年に出版されているオライリーの書籍が無料公開されています。大感謝。凝ったことをするつもりはないので、とりあえず第 3 章あたりまで読んでみました。 O'…

SQL のメモ

SQL に関する偉大なる下記書籍を復習する機会があったため、その内容をメモしておきます。実行環境は BigQuery です。 達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ作者:ミック翔泳社Amazon SQLパズル 第2版~プログラミングが変わる書き方…

Helm Chart を作成する

簡単な Helm Chart を作成してみます。 Helm Docs 環境 Ubuntu 22.04.1 LTS minikube v1.27.1 (Kubernetes v1.25.2) Helm v3.10.1 Helm Chart に対する大雑把な理解 Helm Chart 内のファイルは、おおよそ以下の要素により構成されます。 Helm Chart に関する…

WSL にまっさらな新規の Ubuntu 環境をつくる

WSL に既存 Ubuntu 環境とは別の、まっさらな新規 Ubuntu 環境を作成する方法を確認します。 下記のブログを読んで知った方法なのですが、賢いアイデアだなあと思い、試した時の内容をメモしたものです。 WSL2 と VSCode で欲しい環境を好きなだけ作る 環境 …

Dataflow(Streaming) に入門する

バッチ処理は前回試したので、Streaming の処理を作成してみます。Cloud Pub/Sub からデータを Subscribe して、Cloud Storage 上に Object を作成してみます。 参考です。 Dataflow を使用して Pub/Sub からメッセージをストリーミングする 上記チュートリ…

Dataflow に入門する

Apache Beam のプログラムを、Google Cloud の Dataflow 上で動かしてみます。GCS 上の SJIS のファイルを、BigQuery にロードする処理を試してみます。 下記の資料を参考にしています。 PipelineOptions を設定する Google BigQuery I/O connector 環境 Ubu…

Apache Beam に入門する

Apache Beam に入門してみます。ローカル上で Apache Beam を使った簡単なプログラムが動くまでを試してみます。 Apache Beam GitHub - Apache Beam Apache Beam SDK for Python 下記あたりを参考にしています。 beam/sdks/python/apache_beam/examples/word…

Go の context パッケージを調べる

Go

Go の標準パッケージである context パッケージの利用方法を確認します。 go pkg - context 環境 go 1.19.2 context パッケージとは context パッケージとは、親子関係をもった goroutines の生死を制御、または goroutines 間でのデータをやり取りするもの…

Go の workspace を使ってみる

Go

Go の workspace の備忘録。以下は公式チュートリアル。 Tutorial: Getting started with multi-module workspaces 環境 go 1.19.2 workspace とは workspace とは、複数の go module を同一ディスク上で管理できる仕組みです。 A workspace is a collection…

Go のテストコードに入門する

Go

Go でテストコードを書くにあたり、標準パッケージである testing パッケージの使い方を調べました。 testing 環境 go 1.19.2 コード ファイル構造 . ├── go.mod ├── go.sum └── pkg └── num ├── num.go └── num_test.go go module 作成 $ go mod init sampl…

Git の stash コマンドについてメモ

Git

作業ツリーの内容を一時的に保存することができる git stash コマンドについての備忘録。 git stash 環境 git version 2.37.3 使い方 作業ツリーの状況。 $ git status On branch test1 Changes not staged for commit: (use "git add <file>..." to update what w</file>…

Go の net/http を利用して WEB サーバーをつくる

Go

Go の標準パッケージである net/http を利用して、単純な WEB サーバーを作成してみます。 net/http 環境 go 1.19.1 最低限理解したこと コードを書くにあたり、最低限理解した以下2つの関数についてメモしておきます。 func http.ListenAndServe func http.…

goroutines の基本について学ぶ

Go

goroutines の基本的内容に関して、調べた点をメモしておきます。 環境 go 1.19.1 goroutines goroutines とは goroutines とは、Go が提供するマルチスレッドにより並行処理を実現する仕組みです。しかしながら、Go は OS の Kernel Thread を直接操作する…

きれいな Git コミットログをつくる

Git

下記の Qiita 投稿内容を試した時の作業ログです。 綺麗なコミットログを作りたいときのgitテクニック 環境 Ubuntu 20.04.4 LTS git version 2.37.3 コードの更新内容 更新前 ./main.go package main import ( "fmt" ) func main() { fmt.Println(double(2))…

GoDoc に関するまとめ

Go

GoDoc について調べた内容のまとめです。Go のソースコードでは、コメントを正しい箇所に記述しておくことで、ドキュメントを自動生成できる仕組みがあります。また、言語サーバーとして gopls を利用する IDE であれば、画面上にコメントを表示してくれるよ…

Go の開発環境を作る

Go の開発環境について、調べた内容を纏めておきます。 環境 Windows 11 Pro Ubuntu 20.04.4 LTS(WSL2) Go 1.19.1 Visual Studio Code 1.71.2 Go for Visual Studio Code v0.35.2 Go のインストール先は WSL 上の Ubuntu となります。利用するエディタは VS …

Airflow のテストについて

Airflow の DAG ファイルのテスト方法について、調べた内容をまとめます。 環境 Apache Airflow 1.3.3 Python 3.7.13 実行環境は、下記以前の投稿で作成したローカル上の Airflow 環境になります。 Apache Airflow をローカル環境にインストールする - goodb…

pytest で monkeypatch を利用する

pytest で monkeypatch する方法を確認します。 下記は公式サイトの紹介ページ。 How to monkeypatch/mock modules and environments リファレンス。 monkeypatch 環境 Python 3.9.13 pytest 7.1.2 Python と pytest 周りで mock する方法について pytest の…

Airflow の Connections と Hook の概念を理解する

Airflow の apache-airflow-providers-google を利用しながら、Airflow における Connection と Hook の概念について確認します。 環境 Apache Airflow 2.3.2 apache-airflow-providers-google 7.0.0 Connections とは Connections とは、Airflow から Airfl…

Apache Airflow をローカル環境にインストールする

ローカル環境に Airflow をインストールします。 Installation from PyPI 環境 Ubuntu 20.04.4 LTS (WSL2) pyenv 2.3.1-20-g572a8bcf Python 3.7.13 Apache Airflow 2.3.2 Poetry で管理できれば、と思いましたが、未サポートとのことです。だとしても利用で…

Airflow の DAG 間で依存関係を設定する

Airflowにて、DAG の依存関係を設定する方法を確認します。今回も Astronomer 社のサイトより、下記ページを参考にしています。 Cross-DAG Dependencies 環境 Apache Airflow 2.3.2 TriggerDagRunOperator を利用する方法 TriggerDagRunOperator は、異なる …

Airflow でタスクの条件分岐を行う

Airflow の DAG 定義内で、タスクの条件分岐する方法を確認します。Astronomer 社のサイトを参考にしています。 Branching in Airflow 環境 Airflow 2.3.2 BranchPythonOperator を利用する BranchPythonOperator を利用する方法を確認します。以下は参考に…

Python の queue 関連のライブラリを確認する

Python の標準モジュールで用意されている queue 関連のライブラリについて確認します。 環境 Python 3.9.13 queue 関連のライブラリ 以下があります。 種類 queue モジュール その他モジュール キュー queue.Queue collections.deque スタック queue.LifoQu…

Airflow の DAG 定義ファイルに入門する

公式ドキュメントにある tutorial の参考にしつつ、 Airflow の DAG 定義ファイルの書き方を確認します。 tutorial 環境 Apache Airflow 2.3.2 Python 3.7 DAG 定義ファイルの必要要素 必要となる要素の確認。 Python Library のインストール DAG オブジェク…

Apache Airflow に入門する

Apache Airflow を理解するため、公式ドキュメントの Quick Start を試してみます。Docker Compose を利用して Airflow 環境の作成ができるようです。 Running Airflow in Docker 環境 Ubuntu 20.04.4 LTS (WSL2) Docker 20.10.16 Docker Compose 2.6.0 Airf…