<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Task on Xainome Blog</title><link>https://xainome-blog.beeskynohito.workers.dev/tags/task/</link><description>Recent content in Task on Xainome Blog</description><generator>Hugo</generator><language>ja</language><lastBuildDate>Fri, 23 Aug 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://xainome-blog.beeskynohito.workers.dev/tags/task/index.xml" rel="self" type="application/rss+xml"/><item><title>PrefectとBigQueryを使っているので現状やったことを書いてみる</title><link>https://xainome-blog.beeskynohito.workers.dev/posts/2024/08/prefect-bigquery/</link><pubDate>Fri, 23 Aug 2024 00:00:00 +0000</pubDate><guid>https://xainome-blog.beeskynohito.workers.dev/posts/2024/08/prefect-bigquery/</guid><description>&lt;h2 id="副業でのprefect-cloudとbigqueryの使用">副業でのPrefect CloudとBigQueryの使用&lt;/h2>
&lt;p>&lt;a href="https://xainome-blog.beeskynohito.workers.dev/posts/2023/11/learning-gcp-for-freelance-project/">副業&lt;/a>でPrefect CloudとBigQueryを使っているので触った点と書いてみようと思います。&lt;/p>
&lt;h3 id="環境の設定とインストール">環境の設定とインストール&lt;/h3>
&lt;p>私はWindowsを使っています。契約を結んでいる企業の導入手順がMacで書かれていたのでそこもいろいろ調べてやってみました。&lt;/p>
&lt;h3 id="prefectとは">Prefectとは？&lt;/h3>
&lt;p>そもそもprefectとは何ぞや？というところですね。prefectは&lt;strong>Pythonベースのワークフローエンジン&lt;/strong>になります。&lt;/p>
&lt;p>pythonジョブの実行を自動化したりデバッグしたりする機能をpythonコードで書けるシステムになります。&lt;/p>
&lt;p>AWSだとStepfunctionのイメージに近いですね。それに加えてEventBridgeやCloud Watch Logsが足されたような感じです。&lt;/p>
&lt;p>おそらくAWSやGoogle Cloudに比べてコストが低く、使いやすいという点で採用されたと考えられます。&lt;/p>
&lt;p>Prefectの参照しているドキュメントは&lt;a href="https://docs.prefect.io/2.19.9/">こちら&lt;/a>です。ちなみに3.0がリリースされたみたいなのでそちらのドキュメントは&lt;a href="https://docs-3.prefect.io/3.0rc/get-started/index">こちら&lt;/a>になります。&lt;/p>
&lt;h3 id="インストール手順">インストール手順&lt;/h3>
&lt;p>一応pythonをインストールしている前提でお話しします。&lt;/p>
&lt;p>まずはprefect cloudのインストールを行います。&lt;/p>
&lt;pre tabindex="0">&lt;code>pip install prefect
&lt;/code>&lt;/pre>&lt;p>次はタスクを実行するためのコマンドが必要になります。ただ、Windowsにはパッケージ管理ツールがありません。&lt;/p>
&lt;p>なくても問題ないですが、せっかくなので導入してみます。今後パッケージを入れるときは活用していきたいです。&lt;/p>
&lt;h3 id="scoopの導入">Scoopの導入&lt;/h3>
&lt;p>今回使ったパッケージは&lt;a href="https://scoop.sh/">scoop&lt;/a>になります。手順はサイトにあるのでコマンドプロンプトに入力します。&lt;/p>
&lt;pre tabindex="0">&lt;code>Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
&lt;/code>&lt;/pre>&lt;p>デフォルトでmainがありますが、もしバケットを別にして管理したい場合は以下のコマンドを使います。&lt;/p>
&lt;pre tabindex="0">&lt;code># バケットの追加
scoop bucket add extras
# バケット一覧
scoop bucket list
# インストール一覧
scoop list
&lt;/code>&lt;/pre>&lt;p>&lt;img alt="scoop bucket 一覧" loading="lazy" src="https://xainome-blog.beeskynohito.workers.dev/posts/2024/08/prefect-bigquery/images/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2024-08-22-231456-1024x110.png">&lt;/p>
&lt;p>&lt;img alt="scoop インストール一覧" loading="lazy" src="https://xainome-blog.beeskynohito.workers.dev/posts/2024/08/prefect-bigquery/images/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2024-08-22-231504.png">&lt;/p>
&lt;p>今回はtaskだけ必要なのでmainに入れました。これで&lt;a href="https://github.com/go-task/task">taskコマンド&lt;/a>が使えるようになります。&lt;/p>
&lt;h3 id="prefectの設定と実行">Prefectの設定と実行&lt;/h3>
&lt;p>ただ、taskを実行するにはTaskfile.yamlが必要になります。中身はプロジェクトによりますが私がやったのはこんな感じ。全部ではないですが…&lt;/p>
&lt;pre tabindex="0">&lt;code>tasks:
start-local:
cmds:
- pip install -r requirements.txt
- prefect config set PREFECT_API_URL=http://127.0.0.1:4200/api
- prefect server start
start-local-agent:
cmds:
- prefect config set PREFECT_API_URL=http://127.0.0.1:4200/api
&lt;/code>&lt;/pre>&lt;p>Taskfile.yamlの準備が出来たらターミナルの用意します。&lt;/p></description></item></channel></rss>