Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
DMSCube_LT_初心者だった頃の自分に教えてあげたいこと_その2.pdf
Search
吉田彰宏
September 15, 2023
Technology
860
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
DMSCube_LT_初心者だった頃の自分に教えてあげたいこと_その2.pdf
2023.09.13 DMS Cube トーーク!のLT資料
https://dmscube.com/view/event/7118
吉田彰宏
September 15, 2023
More Decks by 吉田彰宏
See All by 吉田彰宏
DMSCube_DataSpiderの見逃しがちな便利機能(データチェック処理編)
ayoshida
1
680
DMSCube祭り2024_パネルディスカッション
ayoshida
0
260
DMSCube_LT_初心者だった頃の自分に教えてあげたいこと.pdf
ayoshida
0
240
DMSCube_LT_DataSpider_気を付けろ_クラウド版はオンプレ版とここが違う_.pdf
ayoshida
0
140
Other Decks in Technology
See All in Technology
Optunaの最新リリースv5.0について
pfn
PRO
0
120
「Docker Desktop不要の時代」は 来たのか?
ueponx
0
830
ストレスなくAIと付き合いたい!こんなときどうしてる?
namiki64
4
610
S3 Filesで挑む! 八戸せんべい汁の食べ頃問題
usanchuu
0
120
DevelopersIO 2026 知識の地図を描く ─ オントロジーとは何か?
ishikawa_satoru
1
1.7k
トークン化預金DCJPYの取り組みと活用ユースケース
finengine
0
170
価値について
gree_tech
PRO
0
100
USB PDを使ってスマホを労わりたい
raspython3
0
180
サブエージェントと Claude Mods で作る独自 Advisor ツールの話
kenichiodo
2
170
NDIでApple Vision Proにリアルタイム映像送信
jyouryuusui
0
130
JAWS-UGグッズ職人仕事の流儀
kentapapa
0
120
スキマバイトという雇用形態は存在しないので、雇用期間1日のアルバイト契約を事業者とワーカーが結ぶ手続きを支えるのがタイミーなんです
akitoshiga
0
210
Featured
See All Featured
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
460
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
2
6.3k
Rails Girls Zürich Keynote
gr2m
96
14k
30 Presentation Tips
portentint
PRO
1
430
Producing Creativity
orderedlist
PRO
348
41k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.9k
How to Ace a Technical Interview
jacobian
280
24k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
570
Making Projects Easy
brettharned
120
6.8k
A Tale of Four Properties
chriscoyier
163
24k
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
Navigating Team Friction
lara
192
16k
Transcript
2023年 9月13日 株式会社テトラ・コミュニケーションズ 初心者だった頃の自分に 教えてあげたいこと その2
名前: 吉田 彰宏 現職: 株式会社テトラ・コミュニケーションズ 生命保険会社に特化した業務&システムコンサルティング及び システムの開発・構築・運用・保守 DataSpider歴: 2009年~現在 オンプレ版を利用することが多く、クラウド版の利用は少々。
会社の資格試験報奨金の対象にDataSpider認定資格が含まれる ようになったため、Advanceの受験に再チャレンジを検討中。
DataSpiderを使い始めた時、 分からない点を聞ける人が周りにいましたか?
私の場合、 お客様、同僚、含めて有識者ゼロ。 前任者が作った設計書、スクリプトを 読み解くことに。。。。
最初の頃は、無駄に複雑なことをやったりもしていました。 しかし、少しずつ 「あれ、こんな風にできるんだ」という気づき 「こうすれば便利だな」という発見 をするようになりました。 そういった情報を前回に続き、紹介します。
教えてあげたいこと try~catchのエラーメッセージの拾い方
DataSpiderの便利機能(try~catch) ①の枠内のどこかでエラーが発生すると、 ②に処理が移り、その後、try~catchを抜ける。 ① ② 直感的で分かりやすい!
DataSpiderの便利機能(try~catch) どんな情報を取得できるかも 一目瞭然!! 変数名を覚える 必要がなくて楽チン
DataSpiderの便利機能(try~catch) ある時、エラーが発生!! こんな時のためのアプリケーションログ。 中身を確認すると・・・
DataSpiderの便利機能(try~catch) 赤枠の3つアイコンのどこかでエラーが発生していることに なります。でも・・・、どこで起きている? せっかくログに出力したのに、 エラーメッセージを見ても分からない。。。 2023/09/12 09:51:39 [INFO] [スクリプト001] 処理を開始します。
2023/09/12 09:51:39 [ERROR] [スクリプト001] エラーが発生しました。 [com.appresso.ds.vp.mapper.fastconverter.CannotConvertException|2列目でエラー発生: Columnロジック - String型からBigDecimal型に変換できませんでした] 2023/09/12 09:51:39 [INFO] [スクリプト001] 処理を終了します。
DataSpiderの便利機能(try~catch) 改善してみよう その1 問題 try~catchに複数のアイコンを配置するからエラーメッセージの 区別がつかなくなってしまっている。 対応 それならtry~catchを細かく配置すればいいのでは!?
try~catchを改善してみよう その1 見分けがつきやすいように アプリケーションログにも メッセージを追加。 これならOKなはず。。。
これなら、ひと目でマッピング処理でエラーが起きていると分かる!! 2023/09/12 09:48:52 [INFO] [スクリプト002] 処理を開始します。 2023/09/12 09:48:52 [ERROR] [スクリプト002]
マッピング処理でエラーが発生しました。 [com.appresso.ds.vp.mapper.fastconverter.CannotConvertException|2列目でエラー発生: Columnロジック - String型からBigDecimal型に変換できませんでした] try~catchを改善してみよう その1
待っていたのはtry~catch地獄。。。 画面中がtry~catchだらけ。 スクリプトも見にくくなり、やたら長くなってしまうことに。 try~catchを改善してみよう その1
DataSpiderの便利機能(try~catch) 改善してみよう その2 問題 try~catchの数はできるだけ増やさず、かつ、どのアイコンで 発生したエラーであるかをどうやって区別すればよいのか? 対応 エラーが発生すると、そのアイコンのerror_typeに情報が 設定されるはず。そこで判断できるのでは!?
try~catchを改善してみよう その2 処理フローは一番最初と同じ。 やはりtry~catchは少ない方がよいですね。
try~catchを改善してみよう その2 そのかわりに変数Mapperを頑張ってみた!!
try~catchを改善してみよう その2 csv_readのerror_typeが 空ではない場合、エラー メッセージを組み立て、 スクリプト変数へ設定。 その変数の値をログへ出力。 csv_readのerror_typeが空の場合、 次のアイコンのerror_typeのチェックに移る。
これなら、ひと目でマッピング処理でエラーが起きていると分かる!! 2023/09/12 10:07:32 [INFO] [スクリプト003] 処理を開始します。 2023/09/12 10:07:32 [ERROR] [スクリプト003]
エラーが発生しました。[マッピング処理 |com.appresso.ds.vp.mapper.fastconverter.CannotConvertException|2列目でエラー発生: Columnロジック - String型からBigDecimal型に変換できませんでした] 2023/09/12 10:07:32 [INFO] [スクリプト003] 処理を終了します。 try~catchを改善してみよう その2
待っていたのは変数Mapper地獄。。。 先ほどのたった3つのアイコンでもMapper画面がぐちゃぐちゃに。 これ以上のアイコン追加は勘弁してください。 ぐちゃぐちゃなため、マッピングミスも発生。 try~catchを改善してみよう その2
DataSpiderの便利機能(try~catch) 改善してみよう その3 問題 try~catchの数はできるだけ増やさず、かつ、シンプルなマッピングで どのアイコンで発生したエラーであるかをどうやって区別すれば よいのか? 対応 DataSpiderにはきっと便利な機能があるはず!! ヘルプを見ながら試行錯誤の旅へ。
try~catchを改善してみよう その3 ヘルプにはこう書かれているけど、 まずは使ってみよう! ずっと無視をしていたけど、 君たちは何者??
try~catchを改善してみよう その3 処理フローは一番最初と同じ。 変数Mapperもシンプルに。 結果はいかに。
この方法でも、ひと目でマッピング処理でエラーが起きていると分かる!! try~catchの数も抑え、マッピングも簡単。 求めていたものに、やっとたどり着きました。 2023/09/12 10:46:43 [INFO] [スクリプト004] 処理を開始します。 2023/09/12 10:46:43
[ERROR] [スクリプト004] エラーが発生しました。[mapping|変換/基本/マッピング |com.appresso.ds.vp.mapper.fastconverter.CannotConvertException|2列目でエラー発生: Columnロジック - String型からBigDecimal型に変換できませんでした] 2023/09/12 10:46:43 [INFO] [スクリプト004] 処理を終了します。 try~catchを改善してみよう その3 component_name component_type
素朴な疑問 先ほどのログにはcomponent_nameにmappingと表示されていたけど、 スクリプト内にMapperが複数ある場合は区別がつくの? try~catchを改善してみよう その3 2023/09/12 10:46:43 [INFO] [スクリプト004] 処理を開始します。
2023/09/12 10:46:43 [ERROR] [スクリプト004] エラーが発生しました。[mapping|変換/基本/マッピング |com.appresso.ds.vp.mapper.fastconverter.CannotConvertException|2列目でエラー発生: Columnロジック - String型からBigDecimal型に変換できませんでした] 2023/09/12 10:46:43 [INFO] [スクリプト004] 処理を終了します。
結果 問題なし!! try~catchを改善してみよう その3 2023/09/12 11:06:43 [INFO] [スクリプト004] 処理を開始します。 2023/09/12
11:06:43 [ERROR] [スクリプト004] エラーが発生しました。[CSVファイルmapping|変換/基本/マッピ ング|com.appresso.ds.vp.mapper.fastconverter.CannotConvertException|2列目でエラー発生: Columnロジック - String型からBigDecimal型に変換できませんでした] 2023/09/12 11:06:43 [INFO] [スクリプト004] 処理を終了します。 component_nameとはこの名前のこと。
注意点 今回紹介したスクリプト、および、実行結果は、 パラレルストリーミング処理(PSP)を利用しない ことが前提となります。 詳しくは、ヘルプのパラレルストリーミング処理 仕様制限 を参照してください。
今回は過去の私の試行錯誤の内容を紹介しましたが、 「こうするともっと良いよ」というものをご存じであれば、 お話をぜひ聞かせてください。
ご清聴ありがとうございました。 株式会社テトラ・コミュニケーションズ