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
Rust on AWS でデータ分析 / 20260523iotlt-niigata-rust...
Search
kasacchiful
PRO
May 23, 2026
Programming
72
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Rust on AWS でデータ分析 / 20260523iotlt-niigata-rust-on-aws
2026/05/23 (土) 開催の IoTLT新潟 Vol.17 で登壇した資料
イベントページ
https://iotlt.connpass.com/event/391502/
kasacchiful
PRO
May 23, 2026
More Decks by kasacchiful
See All by kasacchiful
S3 TablesのIcebergデータに、AIエージェントからアクセスしてみた / 20261016developersio2026joetsu-accessing-iceberg-in-s3tables-via-agent
kasacchiful
PRO
0
7
俺流 AWS Step Functions 構築の流儀 / 20261005shinagawakai-aws-step-functions
kasacchiful
PRO
1
88
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
1
630
Step Functions Express ワークフローの使い所 / 20260725jawsug-niigata-sado
kasacchiful
PRO
1
140
Step FunctionsでAIエージェント × 人の承認を試す / 20260705jawsug-hokurikushinkansen-agentcore-hitl-workflow
kasacchiful
PRO
0
130
上越のサメ食文化を訪ねて - 新潟市民の初体験レポ / ssmjp-shark
kasacchiful
PRO
1
90
Step Functionsで始めるサーバーレス入門 〜 つないで動かすAWSサーバーレス
kasacchiful
PRO
0
81
Amazon Q Developer CLI (現Kiro CLI) で作った 新潟ランチマップWebアプリのこれまでとこれから / 20260207jawsug-tochigi
kasacchiful
PRO
0
150
Amazon SageMaker Catalogの、AIエージェントによる自動データ分類機能を試してみようとしたが、できなかったので、代わりに最近構築したデータ連携基盤を紹介します / 20260117jawsug-fukui
kasacchiful
PRO
0
210
Other Decks in Programming
See All in Programming
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
180
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
APNsからLive Activityを開始する話
yumnumm
0
160
HTML-in-Canvasで作る未来のWeb UI表現
clockmaker
4
4.7k
AIに “答え“を書かせるのを やめてみた
___akari11
0
120
WebRTC映像をAirPlayに対応させる挑戦.pdf
monolithic_adam
0
360
Atomic Design, Enforced: Scaling Mobile Design Systems (next.app devCon / droidCon Berlin 2026)
steliosf
PRO
0
160
残高管理から台帳サービスへの進化
artoy
1
190
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
110
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
150
The Rails Doctrine Decade
koic
2
560
golang-bob.pdf
iwatsukayura
0
130
Featured
See All Featured
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
550
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
360
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
630
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
930
Side Projects
sachag
456
43k
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
400
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
310
Transcript
None
None
None
Metadata: BuildMethod: rust-cargolambda cargo-lambda provided.al2023 [dependencies] lambda_runtime = "0.13" aws-sdk-s3
= "1" polars = { version = "0.50", features = ["lazy", "parquet", "temporal", "abs"] } tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
None
None
LazyFrame::scan_parquet(input, ScanArgsParquet::default())? .with_columns([ col("timestamp").dt().truncate(lit("1h")).alias("hour"), col("temperature").mean().over([col("device_id")]).alias("_dev_mean"), col("temperature").std(1).over([col("device_id")]).alias("_dev_std"), ]) .with_columns([ ((col("temperature") -
col("_dev_mean")).abs() .gt(lit(3.0) * col("_dev_std"))).alias("_is_anomaly"), col("status").eq(lit("error")).alias("_is_error"), ]) .group_by([col("device_id"), col("hour")]) .agg([ col("temperature").mean().alias("temp_mean"), col("_is_error").sum().alias("error_count"), col("_is_anomaly").sum().alias("anomaly_count"), ]) .sort(["device_id", "hour"], SortMultipleOptions::default()) .collect()?
df["hour"] = df["timestamp"].dt.floor("h") dev_stats = df.groupby("device_id")["temperature"].agg( _dev_mean="mean", _dev_std=lambda s: s.std(ddof=1),
) df = df.merge(dev_stats, left_on="device_id", right_index=True) df["_is_anomaly"] = ( (df["temperature"] - df["_dev_mean"]).abs() > 3.0 * df["_dev_std"] ) df["_is_error"] = df["status"].eq("error") agg = (df.groupby(["device_id", "hour"], sort=True) .agg(temp_mean=("temperature", "mean"), error_count=("_is_error", "sum"), anomaly_count=("_is_anomaly", "sum")) .reset_index())
None
None
None
None
None
None
None
None
None