St_Hakky’s blog

Data Science / Human Resources / Web Applicationについて書きます

【BigQuery】クエリの単体テストを書こうと思ったけど壁が厚くてどうしようか悩んでいる話

こんにちは。久しぶりのブログ投稿になってしまったのですが、今日は「クエリの単体テストを書こうと思ったけど、壁が厚くてどうしようかなと思った話」を書きたいと思います。はじめに言っておきますが、この記事は特に何か解決策があるわけでもなんでもな…

【Airflow】KubernetesPodOperatorにdag_run.confを渡したい

こんにちは。今日は、airflowと戯れていたら、なんかバグを踏んだか何かをしたので、それについて書きたいと思います。 やりたいこと KubernetesPodOperatorにdag_run.confをenv_varsのパラメーター経由で渡して、そのenv_varsに、実行日を渡して、どの日の…

【Pandas】週の曜日の始まりが違う場合の週ごとの日付を取得する方法があったのでまとめる

こんにちは。 モチベーション 今開発で、週の曜日の始まりが違うケースがあって、でも一年間の週の通し番号ごとに集計をしたい、みたいな感じのことがしたく、週の曜日始まりが違う曜日のスタートで、週ごとの日付を取得したいなという気持ちがありました。p…

【Python】Pandasでcross joinをする方法

こんにちは。今日は、pandasでcross joinをする方法について書きたいと思います*1。 やりたいこと df_a, df_bの二つのデータフレームがあったとして、その二つのデータフレームをcross joinしたいなという気持ちになったとします。ただ、Pandasにはこれをそ…

自然言語処理向けのデータ作成ツールの「doccano」を使ってみたので、まとめる

こんにちは。最近、仕事で自然言語処理関係のプロジェクトをやっているのですが、その関係でdoccanoというツールを触ってみることになったので、使い方とかをまとめておきます。 doccanoとは doccanoとは、オープンソースのテキストアノテーションツールです…

【kedro】gcsのファイルを読み込むときのcredentialsの設定方法

こんにちは。kedroのドキュメントにもし書いてあったらすみませんなのですが、地味にハマったので、備忘録的に書いておきます。 やりたいこと gcsにあるデータを読み込んで、それを処理のなかで使いたいです。 設定方法 credentials系の情報は、 conf/local/…

【 Kedro】Kedroに入門したのでまとめる

こんにちは。最近、Kedroと言う機械学習向けのパイプライン構築用のツールを使ってみたので、それについてまとめます。 Kedroとは? 概要 Kedro は QuantumBlack というデータ分析企業 が公開している、プロダクションレディなデータ分析用ワークフロー構築…

【AWS】AWS Data PipelineのstartDateTimeの指定で盛大にハマった話

こんにちは。今日は、AWS Data Pipelineを使っていてstartDateTimeの指定で盛大にハマったので、その話を書きます。 そもそもAWS Data Pipelineって何? って方は、以下の記事をどうぞ。まぁ、この記事読んでいる人はこれについては知っているだろうけど。ww…

【GCP】Serverless frameworkを使ってCloud Functionを作る

GCP

こんにちは。最近、Serverless Frameworkを使ってCloud functionを作る機会があったので、そちらについてまとめておきます。 Serverless Frameworkとは ServerlessアプリケーションであるLambdaやCloud Functionを構成管理したりデプロイしたり、ローカルで…

【AWS】AWS Data Pipelineでプライベートサブネット内にあるDB(RDS)を操作するのに盛大にハマったのでまとめる

こんにちは。今日は、Data Pipelineでプライベートサブネット内にあるDBを操作する場合の対処方法についてはまったので、書いてみたいと思います。 AWS Data Pipelineとは AWS Data Pipelineについては、以前記事にしているので、以下の記事をご覧ください*1…

【AWS】AWS Data Pipeline入門

こんにちは。最近仕事でAWS Data Pipelineを使う機会があったので、その機能についてまとめます。 AWS Data Pipelineとは AWS Data Pipelineとは、一言で言うとAWSが提供するAirflow、みたいな感じになると思います。aws.amazon.comAWSのS3やDynamoDB、Redsh…

【Git】macを新しくしたときにgitをインストールしてGithubの設定もする手順

こんにちは。久しぶりに新しいmacで作業し始めているのですが、これを機に初期セットアップのところをまとめておこうかなと思います。 brewのインストール brewをまずは入れます。途中でXcodeもインストールするアナウンスが出ると思いますが、普通にそれも…

【Golang】AtCoderの精選過去問10問やってみた

こんにちは。今日は、Goの練習がてら、AtCoderの問題を解いてみました。以下の記事を読んで、入門者向けの過去問精選10問があることを知ったので、それをときました。 qiita.com 過去問集 問題はこちら。atcoder.jp 解いたコード 第0問:WelcometoAtCoder pa…

Google Dmainsを使ってドメインを取得したのでまとめる

こんにちは。最近、プライベートでアプリ開発をしてみようと思って、ドメインを初めてGoogle Dmainsを使って取得したので、そのやり方をまとめます。今、Firebaseでアプリケーションはホスティングして、DNSは今後のことも考えてGCPでやっているのですが*1、…

Data Portal(旧Data Studio)を真面目に触ってみたので、参考になった記事とかまとめる

こんにちは。これまで、自社でRedashをメインで使っていたのですが、GCPの移行を部分的に進めているのもあって、Data Portal(Data Studio)を社内使ってみましたので、そのときに調べた内容とかハマったこととかを上げていきたいと思います。まだ、使って4日…

【Git】ローカルリポジトリをリモートリポジトリに反映する

Git

こんにちは。今日は、たまにしかやらないので、忘れてしまうローカルリポジトリをリモートリポジトリに反映する方法を書きます。 ローカルリポジトリの設定 何かしらの経緯で、ローカルリポジトリを設定されていたとします。以下は、自分で設定した場合のコ…

【Golang】godotenv を使ってenvファイルを扱う

こんにちは。今日は、envファイルをGoで扱うために、godotenvを使った方法を試してみたいと思います。 godotenvとは Goには環境変数を読み込んで処理する方法がありますが、godotenvは、envファイルから環境変数を読み込むことができるライブラリです。 Gith…

【Python】Pandasのメモリ使用量の削減方法のまとめ

こんにちは。今、とある事情でPandasのメモリ使用量の削減を仕事でしているのですが、その時に改めてPandasのメモリ使用量の削減方法を調べたので、まとめてみます。 メモリ使用量の確認 今回、タスクを実施するにあたってメモリ使用量がどのくらいかかって…

【Golang】Go Modulesについて調べたのでまとめる

こんにちは。最近、Goの勉強をせっせとしています。特に業務で使うわけでもなく、完全に趣味なのですが、楽しいのでやっています笑。今回は、Go Modulesについて調べたのでまとめてみます。 Go Modulesとは Go 1.11 から追加された外部パッケージの管理シス…

【Python】Pandasで大きなcsvファイルを読み込む

こんにちは。最近、少し重めのデータを扱うことがありまして、Pandasで読み込もうとしたところ、メモリエラーを食いました。良い機会なので大きめのcsvファイルを扱う時に行うことを自分用メモとしてまとめておこうと思います。 方法一覧 大きめのファイルを…

【Python】Pythonの高速化のためのNumbaのTips

こんにちは。最近、仕事でNumbaを使ったコードと対峙しまして、良い機会だと思って、NumbaのTipsをまとめてみました 本家 Numba: A High Performance Python Compiler Numbaとは PythonやNumpyのコードを高速な機械語に変換するためのJITコンパイラのことを…

【AWS】SAMを使ってLambdaでAuroraを自動で停止させる

こんにちは。先日、開発チームのコスト削減の一環で、開発環境のAuroraをDailyで確認し、起動されていたら、自動的に停止するスクリプトを書きました。そんなに大したことではないのですが、なんかまたありそうなネタなので、自分のブログでまとめておこうか…

【Docker】docker-composeのCPU/メモリ使用量の制限

こんにちは。今仕事でメモリ使用量を最適化するような感じのタスクをやっていて、docker-composeのメモリ使用量を制限するやり方みたいなのを調べたのでまとめておきます*1。docker-composeのversion3を使っているのですが、version2のやり方で行けるかなー…

【Python】テスト駆動開発(TDD)について

こんにちは。最近、「テスト駆動Python」という本を読んで、「弊社の開発チームでは取り入れていませんが、そういえばテスト駆動開発とかもあるなぁ」、と思って、ぼんやりとは知っていたものの、ちゃんと調べたことがなかったので、調べてみました*1。 テス…

【Python】「テスト駆動Python」を読んだ

こんにちは。最近、テスト周りについてがっつり調べていたのですが、今やっているプロジェクトでpytestを使っているので、その周辺でいい本ないかなぁと思って読んでみました。この記事では、その本の紹介をしてみたいと思います。 今回読んだ本 今回読んだ…

【Terraform】tfenvでterraformのバージョン管理

こんにちは。今日は、tfenvでterraformのバージョン管理をやっているので、そのことについて書きます。 tfenvとは 複数のプロジェクトで、terraformを使う場合、terraformのバージョンが違うことがあります。そのことに対応するために、複数のterraformをイ…

【Python】使用メモリを計測するためにmemory_profilerを使う

こんにちは。Pythonでメモリ使用量を調査する方法について、今回はmemory_profilerについて調べたのでまとめます。 本家のサイト memory-profiler · PyPI インストール $ pip install memory_profiler 使い方 使い方としては、めちゃめちゃ簡単で、確認した…

【Python】Apache Beamを使ってデータパイプラインを実装してみる

こんにちは。先日、Apache Beamに関する概要の記事を書きました。www.st-hakky-blog.com今回は、Apache Beam SDKのうち、Pythonを使って、実際にデータパイプラインを実装してみようと思います*1。 今回のお題 今回は、Apache Beamの公式のドキュメントをベ…

Apache Beamとは

こんにちは。最近、社内のデータパイプラインの再設計をしておりまして、その中でGCPのDataflowを使う話が出てきました。その中で、Apache Beamの内容について勉強する必要があったので、それについてまとめます*1 Apache Beamとは 公式サイト 本家のサイト…

【Redis】Redashがredisのメモリ不足で落ちた

こんにちは。 Redashが吐き出したエラー 会社でRedashを使っているのですが、こいつがクエリを叩くたびに以下のようなエラーを出すようになりました。 Error running query: failed communicating with server. Please check your Internet connection and t…