PythonエンジニアがTROCCOを使って感じたこと

こんにちは、Asです。
私は普段、Pythonを使ってデータ連携やETL処理を実装することが比較的多いエンジニアです。
(最近はAPIをテストすることも増えましたが、それはまた何かの機会にでも。
さて業務では、
  • データベースからGoogleスプレッドシートへデータを出力する
  • Googleスプレッドシートで更新された内容を定期的にデータベースへ取り込む
といった、「データの入出力(I/O)」を中心とした処理をよく担当していましたが、それらの中でも複雑な変換を必要としない単純なI/Oについては、TROCCOというツール利用する機会が増えてきましたので、あくまでも主観での感想となりますが、使ってみて感じたことを書いてみたいと思います。

主に利用しているのは次の2パターンです。

① データベース → Googleスプレッドシート

非エンジニアの方向けに、DBの内容を後続利用しやすいスプレッドシートへ出力することが、主なユースケースです。
Pythonで実装すると、
  • DB接続
  • pandasなどで取得&型の変換
  • Google Sheets APIなどの認証管理
  • 定期実行
  • エラー通知
と、それなりの実装・運用コストが発生します。
TROCCOならGUIだけで設定でき、SQLを書けばすぐに定期実行まで構築できます。

② Googleスプレッドシート → データベース

①とは逆で、非エンジニアの方が入力・作成したマスタデータや運用データを取り込む場合などが主なユースケースですね。
Pythonでも実現できますが、やはりこちらもAPI認証や差分更新の確認、エラー監視など・・・実際には運用コードの方が長くなりがちです。
TROCCOでは、転送設定とスケジュールを組むだけで実現できるため、「コードを書くというよりも、必要な取り込み項目を設定する」という感覚で利用できます。

以前と比べて良くなったと感じた点

自由度がかなり上がった
最近特に良いと感じたのは、TROCCOの接続先の充実ぶりです。
GoogleスプレッドシートやSnowflake、Salesforce、Notionなど対応コネクタも随時拡大されるだけではなく、既存のコネクタに関してもアップデートがいろいろと行われ、利用しやすくなっています。
また、カスタムコネクタというものがあり、TROCCOにデフォルトで用意されていない接続先に対しても、APIを利用して自身で対応コネクタを作成し、TROCCO上で利用できるのが便利です。

Googleスプレッドシート連携がより実用的に
これは上でも触れた「アップデート」の一例ですが、初期はスプレッドシートへの出力がA1セルスタート固定でした。これが地味に面倒だったんですよね…。「いや、このデータは3行目から始めたいんだよ!」って時は、別シートにアウトプットしてimportするとかしなきゃいけなかったんです。
それがアップデートでスタートセルの指定ができるようになり、一気に使い勝手がよくなりました。

プログラミングETL
テンプレート的な「AをBに格納」という処理以外に、Pythonなどのプログラミング言語を使って、転送元から取得したデータを加工することができます。

“運用しやすさ”を意識した改善が多い

最近のリリースノートを見ていて感じるのは、単なるコネクタ追加だけではないことです。
例えば、
  • SQLフォーマッターの追加
  • UI・UX改善
  • APIの対象拡充
  • データ品質チェック機能
  • BigQueryやDatabricksなどデータ基盤向け機能の強化
など、日々運用するエンジニア目線の改善が継続して行われています。
派手な新機能だけではなく、「毎日使うとありがたい」改善が積み重ねられている印象ですが、以前から評価していた点も数多くあります。
  • GUIだけで設定できる
  • スケジュール実行が簡単
  • エラー通知まで設定できる
  • 非エンジニアへ運用を渡しやすい
  • 国産サービスなので日本語ドキュメントが充実
Pythonでスクラッチ開発すると、どうしても”運用コード”が増えていきます。
データ加工が目的ではなく、「データを決まった場所へ運ぶこと」が目的であれば、TROCCOに任せた方がシンプルになるケースは多いと感じています。

ちょっと面倒なところ

スケジュール設定だけは、少し面倒なところがあります。
例えば『9時から22時までの間、毎時10分に実行』したいとします。
みなさまお馴染みのcronだと1回でぱぱっと設定できますね。
TROCCOだと「曜日くくり」などの表現がうまくできないため、同じようなスケジュールを「月曜日の分」「火曜日の分」・・・と、コツコツ追加する必要があります。
とはいえ、非エンジニアの方が設定する分には「月曜が1」みたいな置き換えがないので、感覚的に分かりやすいようですから、人それぞれなのかもしれません。

一方で、コーディングの知識が必要な場面もある

もちろんTROCCOも万能ではありません。
例えば「取り込んだ値を特定の桁数で切り捨てしたい」みたいな処理は、TROCCOのデフォルト操作には存在しません。
ただTROCCOは先にも触れた「プログラミングETL」で型の置換などを行うことができます。
しかしPythonエンジニア的には「よし、この置換なら、このライブラリをインポートして~」と、気軽にimport XXXとやりたくなりますが、pip installしないといけないようなライブラリは、非対応のことが多いです。いわゆるPythonの標準ライブラリのみの対応と思っておけば大丈夫な気がします。
リクエストすれば追加もしてもらえるようですが、急ぎの場合には難しいでしょう。
それ以外にも、
  • 複雑なデータ加工
  • APIを複数呼び出すような処理
  • 機械学習前処理
  • 独自ロジックが多いワークフロー
こうしたケースでは、Pythonで実装した方が自由度が高いのではないかと思われます。
つまり、
「処理を書くツール」ではなく、「データを運ぶツール」
という認識で使う方が良いのではないかと感じています。

まとめ

私の用途は、データベースとGoogleスプレッドシート間のデータ連携が中心です。
その範囲で見ると、以前よりAPI連携の自由度が高まり、Googleスプレッドシートとの連携も使いやすくなりました。
さらに、毎月のようにリリースノートが公開され、APIやUI、コネクタ、運用機能が継続的に改善されています。こうしたアップデートが活発な点は、長く利用するサービスとして大きな安心材料です。なにより国産ツールなので、基本マニュアルが日本語なことが最高ですね!
Pythonでスクラッチ開発するか、TROCCOを利用するか。
もし目的が「データを確実に運び、安定運用したい」ということであれば、以前よりも自信を持ってTROCCOを選択肢としておすすめできると感じています。

About the author

Add Comment

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください。

By As

最近の投稿

アーカイブ

カテゴリー

タグクラウド

コーポレートサイト