Slide 1

Slide 1 text

ӝੜਅ໵ʢಙౡେֶσβΠϯܕ"*ڭҭݚڀηϯλʔʣ ʹΑΔେن໛σʔλͷॲཧ ౷ܭ਺ཧݚڀॴڞಉར༻ݚڀूձʮσʔλղੳ؀ڥ3ͷ੔උͱར༻ʯ V@SJCP  IUUQTHJUIVCDPNVSJCPUBML@@SKQVTFST   

Slide 2

Slide 2 text

Ұԡ͠ϙΠϯτ େن໛σʔληοτͷޮ཰తͳॲཧͱసૹͷͨΊʹઃܭ "QBDIF "SSPX \BSSPX^ ύοέʔδ ΠϯϝϞϦͷΧϥϜܕσʔλΛऔΓѻ͏ʢγϦΞϥΠζෆཁʣ ଟݴޠπʔϧϘοΫεͱͯ͠ɺ͞·͟·ͳϓϩάϥϛϯάݴޠͰ࣮૷ $ 3 1ZUIPO 3VTU +VMJB %VDL%#ͳͲ EQMZSόοΫΤϯυΛఏڙɻύΠϓԋࢉࢠʹΑΔॲཧΛద༻Մೳ QBSRVFUʹରԠɻύʔςΟγϣχϯάʹΑΔ؅ཧ MVCSJEBUFɺSMBOHɺTUSJOHSɺUJEZTFMFDUͳͲͷؔ਺ʹ΋ରԠ ະରԠͳؔ਺Λ\EVDLEC^ύοέʔδ͕Χόʔ ଎͍ খ͍͞ ಡΈࠐΈɾूܭՃ޻ॲཧ͕ ϑΝΠϧɾϝϞϦαΠζ͕ ޮ཰త DTWϑΝΠϧ͔ΒͷEQMZS΍EBUBUBCMFͰͷॲཧͱൺֱͯ͠ɺ͔ͳΓߴ଎ σʔλͷૢ࡞ɾ؅ཧ͕

Slide 3

Slide 3 text

ࣗݾ঺հ ӝੜਅ໵ ͏ΓΎ͏͠Μ΍ ஍ཧۭؒσʔλղੳ ೥݄ʙಙౡ ౷ܭɺσʔλαΠΤϯε Ծ $ Ҋ Χόʔɿϓϩηε $ ࢖༻ $(ɿετοΫϑΥτͷ 3' ը૾ʢ ԁʣ σʔλՄࢹԽ 3ݴޠ aདྷ೥݄ग़൛

Slide 4

Slide 4 text

େ͖͍σʔλͷॲཧɺͲ͏͍ͯ͠·͔͢ʁ ͜͜Ͱ͸ʮେ͖͍σʔλʯΛʮݱ࣮తʹѻ͑ͦ͏ͳ෺ʯͱ͠·͢ ୯ҰͷςΩετɾόΠφϦϑΝΠϧ ҰͭͷϑΝΠϧ͕࠷େͰ਺(#ɺશମͰ(#Ҏ಺ఔ౓ σʔλج൫ʢ%#ɺ)BEPPQɺ"NB[PO"UIFOBɺ#JH2VFSZʣ౳Λར༻͠ͳ͍ BXLͳͲͰલॲཧΛ͠ͳ͍ఔ౓ͷେ͖͞ ϩʔΧϧɾΫϥ΢υͰॲཧʜ ͳΔ΂҆͘Ձɾ௿ੑೳͷ؀ڥͰࡁ·͍ͤͨ  ฒྻԽ ϝϞϦΛͨ͘͞ΜੵΜͩίϯϐϡʔλʔͰॲཧͤ͞Δ

Slide 5

Slide 5 text

େ͖͍σʔλͷॲཧɺͲ͏͍ͯ͠·͔͢ʁ 3ɺ34UVEJP͋Δ͋Δ ॲཧͷաఔͰϝϞϦΛ࢖͍੾Δ 34UVEJP͕രൃ͢Δ

Slide 6

Slide 6 text

"QBDIF"SSPX

Slide 7

Slide 7 text

"QBDIF"SSPX ɹɹɹɹɹɹͷσʔλ෼ੳπʔϧͷϓϥοτϑΥʔϜ ڞ௨ͷ࣮૷ΛݴޠΛ௒͑ͯڞ༗Ͱ͖Δ ϝϞϦ಺ͷσʔλΛޮ཰తʹߏ଄Խͯ͠ॲཧʢγϦΞϥΠζෆཁɺߴ଎ʣ σʔλަ׵࣌ͷੑೳվળʹΑΔߴ଎ͳॲཧΛ࣮ݱ "QBDIF"SSPXܗࣜʜBSSPX QBSRVFU ྻࢦ޲ͷσʔλʢΧϥϜܕσʔλʣΛѻ͏͜ͱʹಛԽ ෳ਺ݴޠରԠ ΠϯϝϞϦͰͷॲཧΛ࣮ݱ

Slide 8

Slide 8 text

ΧϥϜܕσʔλσʔλ෼ੳʹಛԽ IUUQTBSSPXBQBDIFPSHPWFSWJFX ৯೑ྨ ྶ௕ྨ ྶ௕ྨ Ϩοαʔύϯμ νϯύϯδʔ Ϛϯτώώ ৯೑ྨ ௗྨ ϥΠΦϯ ϑϯϘϧτϖϯΪϯ ߦ୯ҐͰσʔλΛอ࣋ɾऔΓग़͠ $47΍.Z42-ͳͲͷσʔλϕʔε ߦࢦ޲ ಛఆྻͷ஋΁ͷૢ࡞ ˠશ෦ͷߦɾྻ΁ͷΞΫηεΛ൐͏ ྻ୯ҐͰσʔλΛอ࣋ɾऔΓग़͠ ྻࢦ޲ ৯೑ྨ ྶ௕ྨ ྶ௕ྨ Ϩοαʔύϯμ νϯύϯδʔ Ϛϯτώώ ৯೑ྨ ௗྨ ϥΠΦϯ ϑϯϘϧτϖϯΪϯ ˠࢦఆ͞ΕͨྻͷΈಡΈࠐΈ େྔͷߦʹର͢Δू໿ॲཧ͕ޮ཰త

Slide 9

Slide 9 text

\BSSPX^ύοέʔδ

Slide 10

Slide 10 text

\BSSPX^ύοέʔδͷಛ௃ "SSPX$ϥΠϒϥϦ΁ͷΠϯλʔϑΣʔεΛఏڙ "SSPX"SSPX͕ѻ͏BSSPX QBSRVFUܗࣜͷσʔλ \EVDLEC^ύοέʔδɺ1ZUIPOͱͷ࿈ܞ ʢϝϞϦʹ৐Γ੾Βͳ͍ن໛ͷʣෳ਺ͷϑΝΠϧΛಡΈࠐΈɺॲཧ \EQMZS^Λ͸͡Ίͱͯ͠\MVCSJEBUF^ɺ\TUSJOHS^ɺ\UJEZTFMFDU^ͳͲͷؔ਺ʹ΋ରԠ ˠ\EQMZS^ʹΑΔύΠϓॲཧ΍3ͷؔ਺Ͱେن໛σʔλͷૢ࡞͕࣮ݱ σʔλͷίϐʔΛ͢ΔաఔͰ΋ Ϋϥ΢υ؀ڥΛؚΊͨɺ \BSSPX^ͰରԠ͠ͳ͍ॲཧΛ࣮ߦ͢ΔͨΊɺผͷύοέʔδͱݴޠͰσʔλΛڞ༗ ෳ਺ϑΝΠϧ΁ͷߴ଎ͳಡΈॻ͖ ΠϯϝϞϦͰॲཧ

Slide 11

Slide 11 text

\BSSPX^Λ࢖ͬͨॲཧͷྲྀΕ σʔλͷಡΈࠐΈ QBSRVFU GFBUIFS UYU DTW KTPO UTW 📄 σʔλϑϨʔϜͱͯ͠ฦΓ஋ΛಘΔ \EQMZS^ͳͲͷؔ਺ʹΑΔॲཧ d <- read_parquet("data/zoo.parquet.parquet", as_data_frame = FALSE) result <- d |> select(name, taxon, body_length_cm) |> filter(taxon %in% c("霊長類", "齧歯類", "鳥類")) |> group_by(taxon) |> summarise(body_length_mean = mean(body_length_cm)) result |> collect() ू໿͞ΕͨσʔλΛ෼ੳɾՄࢹԽ σʔλΛϝϞϦ্ʹಡΈࠐΉ ஗ԆධՁ

Slide 12

Slide 12 text

\EVDLEC^ύοέʔδ \BSSPX^ଆͰ\EVDLEC^ͱͷ࿈ܞͷͨΊʹto_duckdb() Λఏڙ ಈ࡞͢ΔίϯϐϡʔλʔͷϝϞϦ্Ͱಈ࡞͢ΔܰྔσʔλϕʔεγεςϜ Φϥϯμͷࠃཱݚڀॴͷϝϯόʔ͕த৺ʹͳͬͯ։ൃ $Ͱॻ͔Εͨ"1*Λଟݴޠʹϥοϓͯ͠ఏڙ \EVDLEC^͸ͦͷ͏ͪͷ3ݴޠ޲͚ϥούʔύοέʔδ ˠ\BSSPX^ଆͰରԠ͠ͳ͍Ұ෦ͷؔ਺Λ࣮ߦͰ͖Δ \%#*^ʹΑͬͯσʔλϑϨʔϜΛૢ࡞

Slide 13

Slide 13 text

\BSSPX^͕ରԠ͠ͳ͍ؔ਺ʁ list_compute_functions() "SSPXRVFSZFOHJOF લड़ͷͱ͓Γɺ\BSSPX^Ͱ͸"SSPX$΁ͷΠϯλʔϑΣΠεΛఏڙ \EQMZS^ͷؔ਺΋ར༻Մೳ ?acero ˠ͢΂ͯͷ3ͷؔ਺͕\BSSPX^Ͱ࣮ߦՄೳͳΘ͚Ͱ͸ͳ͍ d <- read_parquet(here::here("data/typeB/36_tokushima/year=2022/month=10/part-0.parquet"), as_data_frame = FALSE) ࣍ͷεϥΠυͰྫΛࣔͨ͢ΊʹBSSPXΦϒδΣΫτΛ༻ҙ EBUBGSBNFʹม׵ͯ͠ॲཧPSΤϥʔ

Slide 14

Slide 14 text

EBUBGSBNFʹม׵ͯ͠ॲཧ d |> select(datetime) |> mutate(is_jholiday = zipangu::is_jholiday(datetime)) #> Warning: Expression #> zipangu::is_jholiday(datetime) not supported in Arrow; #> pulling data into R #> datetime is_jholiday #> 1 2022-10-01 FALSE #> 2 2022-10-01 FALSE #> 3 2022-10-01 FALSE #> 4 2022-10-01 FALSE #> 5 2022-10-01 FALSE #> 6 2022-10-01 FALSE େ͖͍σʔλͷ··ͩͱॲཧʹ͕͔͔࣌ؒΔ͔΋

Slide 15

Slide 15 text

ΤϥʔͰॲཧΛఀࢭ ˠ\EVDLEC^΁ͷม׵ͰରԠ d |> group_by(location_no) |> slice_min(order_by = traffic, n = 1) |> collect() #> Error: Slicing grouped data not supported in Arrow d |> group_by(location_no) |> to_duckdb() |> slice_min(order_by = traffic, n = 1) |> collect() #> # A tibble: 25,237 × 10 #> # Groups: location_no [274] #> datetime source_…¹ locat…² locat…³ meshc…⁴ link_…⁵ link_no traffic #> #> 1 2022-10-29 17:50:00 3028 54 西ノ丸… 513404 2 662 2 #> 2 2022-10-29 19:50:00 3028 54 西ノ丸… 513404 2 662 2

Slide 16

Slide 16 text

\BSSPX^ύοέʔδͰͷ 1BSRVFUϑΝΠϧͷѻ͍

Slide 17

Slide 17 text

"QBDIF1BSRVFU େن໛σʔλΛѻ͏ͨΊʹ޿͘࢖ΘΕ͍ͯΔඪ४తͳܗࣜΛఏڙ ྻࢦ޲σʔλΛѹॖ͞ΕͨόΠφϦܗࣜͰอଘɺ$47ͳͲͷඇѹॖςΩετܗࣜ ͱൺֱͯ͠ϑΝΠϧαΠζ͕খ͘͞ͳΔ IUUQTQBSRVFUBQBDIFPSH ޮ཰తͳྻσʔλදݱͷར఺Λར༻Ͱ͖ΔΑ͏ʹઃܭ ݩ͸)BEPPQΤίγεςϜͷதͰػೳ͢ΔΑ͏ʹ։ൃ

Slide 18

Slide 18 text

QBSRVSUͷಡΈࠐΈ୯ҰϑΝΠϧ "844ɺ(PPHMF$MPVE4UPSBHF (4$ ͔ΒͷಡΈࠐΈ΋0, read_parquet("data/typeB/36_tokushima/year=2022/month=10/part-0.parquet") σʔλϑϨʔϜͱͯ͠ಡΈࠐΈʢσϑΥϧτʣ "SSPX5BCMFͱͯ͠ಡΈࠐΈˠΠϯϝϞϦͰॲཧՄೳ read_parquet("s3://[access_key:secret_key@]bucket/path[?region=]") read_parquet("gs://anonymous@bucket/path") IUUQTBSSPXBQBDIFPSHEPDTSBSUJDMFTGTIUNM read_parquet("data/typeB/36_tokushima/year=2022/month=10/part-0.parquet", as_data_frame = FALSE, # tidyselectでの列選択 col_select = c(datetime, ends_with("no")))

Slide 19

Slide 19 text

QBSRVSUͷಡΈࠐΈෳ਺ϑΝΠϧ ڞ௨ͷྻ഑ྻΛ΋ͭෳ਺ͷQBSRVFUϑΝΠϧΛಡΈࠐΉʢ͜ͷஈ֊Ͱ͸εΩʔϚͷΈʣ open_dataset(here::here("data/typeB/13_tokyo/year=2021/")) #> FileSystemDataset with 12 Parquet files #> datetime: timestamp[us, tz=Asia/Tokyo] #> source_code: string #> location_no: int32 #> location_name: string #> meshcode10km: string #> link_type: int32 #> link_no: int32 #> traffic: int32 #> to_link_end_10m: string #> link_ver: int32 #> month: int32 #> #> See $metadata for additional Schema metadata ݄ຖʹ෼͔ΕͨݸͷϑΝΠϧ DTWͰ΋0, open_dataset(..., format = "csv")

Slide 20

Slide 20 text

ύʔςΟγϣχϯά Ұͭͷେ͖ͳσʔληοτΛෳ਺ͷࡉ͔ͳϑΝΠϧʹ෼ׂ͢Δઓུ )JWFܗࣜʜLFZWBMVF ඞཁͳσʔλʹૉૣ͘ΞΫηεɺॲཧͷෛ୲͕ܰݮ ෼ׂΛత֬ʹߦ͏͜ͱ͕ॏཁ ྫ͑͹ʜ೥ɺ݄ʢʣɺ౎ಓ෎ݝʢʣ d |> write_dataset(path = "data", partitioning = c("year", "month")) σʔληοτΛ ೥ɺ݄ʹ෼͚ͯอଘ EBUBZFBSNPOUIQBSUQBSRVFU NPOUIQBSUQBSRVFU NPOUIQBSUQBSRVFU ʜ EBUBZFBSNPOUIQBSUQBSRVFU NPOUIQBSUQBSRVFU NPOUIQBSUQBSRVFU

Slide 21

Slide 21 text

εΩʔϚʢܕͷࢦఆʣ ྻࢦ޲ͷσʔλܗࣜʜྻ͝ͱʹܾ·ͬͨܕʢ·ͱ·ͬͨ഑ஔʣ͕͋Δ ๛෋ͳσʔλλΠϓͰྻ഑ྻͷ஋Λఆٛ͢Δ Ϗοτ੔਺ʢJOUʣͱϏοτ੔਺ JOU ͸۠ผ͞ΕΔ open_dataset("data", schema = schema( datetime = timestamp(unit = "ms", timezone = "Asia/Tokyo"), source_code = utf8(), location_no = int32(), …)) #> FileSystemDataset with 12 Parquet files #> datetime: timestamp[ms, tz=Asia/Tokyo] #> source_code: string #> location_no: int32 #> location_name: string #> ... IUUQTBSSPXBQBDIFPSHEPDTSSFGFSFODFEBUBUZQFIUNM

Slide 22

Slide 22 text

\BSSPX^ύοέʔδʹΑΔ େن໛σʔλͷॲཧ

Slide 23

Slide 23 text

Ұൠಓ࿏ͷஅ໘ަ௨ྔ৘ใσʔλ ެӹࡒஂ๏ਓ೔ຊಓ࿏ަ௨৘ใηϯλʔ͕Φʔϓϯσʔλͱͯ͠ެ։ ֤౎ಓ෎ݝܯ࡯͕ं྆ײ஌ثͳͲͷܭଌػثͰऩूͨ͠அ໘ަ௨ྔʹؔ͢Δɹɹ ৘ใΛܯ࡯ிʹ͓͍ͯͱΓ·ͱΊͨ΋ͷ ΫϦΤΠςΟϒίϞϯζදࣔࠃࡍ $$#: IUUQTXXXKBSUJDPSKQ ˞શࠃ͢΂ͯͷ࣍ϝογϡΛɹ ໢ཏ͢ΔΘ͚Ͱ͸ͳ͍

Slide 24

Slide 24 text

Ұൠಓ࿏ͷஅ໘ަ௨ྔ৘ใσʔλ [JQϑΝΠϧల։ޙͷDTWΛEBUBUBCMFͱͯ͠ಡΈࠐΉؔ਺Λ༻ҙ IUUQTHJUIVCDPNVSJCPKBSUJDS remotes::install_github("uribo/jarticr") dplyr::glimpse( jarticr::read_jartic_traffic("data-raw/typeB_tokushima_2022_10/徳島県警_202210.csv") ) #> Rows: 2,384,773 #> Columns: 10 #> $ datetime 2022-10-01, 2022-10-01, 2022-10-01, 2022-10-01, 2022-… #> $ source_code "3028", "3028", "3028", "3028", "3028", "3028", "3028"… #> $ location_no 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,… #> $ location_name "徳島本町→県庁前", "県庁前→徳島本町", "新助任橋北詰→徳… #> $ meshcode10km "513404", "513404", "513404", "513404", "513404", "513… #> $ link_type 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, … #> $ link_no 710, 705, 681, 676, 679, 678, 11, 375, 6, 5, 6, 5, 842… #> $ traffic 21, 24, 25, 27, 25, 28, 30, 16, 42, 42, 27, 25, 16, 26… #> $ to_link_end_10m "6", "6", "11", "27", "21", "29", "26", "8", "7", "92"… #> $ link_ver 202100, 202100, 202100, 202100, 202100, 202100, 202100…

Slide 25

Slide 25 text

ݕূσʔλ αΠζͷҟͳΔσʔλΛछ༻ҙ -BSHF 4NBMM શࠃ .FEJVN )VHF શࠃ ೥ؒ ೥ؒ ౦ژ౎ ೥ؒ ౦ژ౎ ϲ݄ؒ ߦ਺ ྻ਺ σʔλαΠζ QBSRVFU ஍Ҭ ظؒ ϑΝΠϧαΠζ DTW ສ ԯສ (# .# (# (# ԯສ (# ԯສ (# (# (# -BSHFɺ)VHFͷDTWϑΝΠϧαΠζ͸[JQѹॖ࣌ͷେ͖͞ ʢల։ޙ͸͞Βʹେ͖͍ʣ

Slide 26

Slide 26 text

ݕূ؀ڥ "QQMF..BD 3 ϝϞϦ(#ʢݱߦͷ.#1Ͱ͸࠷େʣ library(arrow) # 10.0.1 library(readr) # 2.1.3 library(data.table) # 1.14.6 library(dplyr) # 1.0.10 library(dtplyr) # 1.2.2 library(duckdb) # 0.6.1 ͍ͣΕͷύοέʔδ΋$3"/࠷৽൛

Slide 27

Slide 27 text

ݕূͭͷॲཧΛൺֱ άϧʔϓԽͱूܭ ಡΈࠐΈ ݁߹ DTWϑΝΠϧͷಡΈࠐΈ଎౓ readr::read_csv() data.table::fread() arrow::read_csv_arrow() \BSSPX^ \EQMZS^ \EBUBUBCMF^ \EVDLEC^ʜBSSPXΦϒδΣΫτ͔Βม׵ \EUQMZS^ʜEBUBUBCMFΦϒδΣΫτΛEQMZSͷؔ਺Ͱॲཧ όοΫΤϯυͰ\EBUBUBCMF^͕ػೳ

Slide 28

Slide 28 text

݁ՌϑΝΠϧͷಡΈࠐΈ 4NBMM EBUBUBCMF 🏅

Slide 29

Slide 29 text

݁ՌϑΝΠϧͷಡΈࠐΈ .FEJVN EBUBUBCMF 🏅

Slide 30

Slide 30 text

݁ՌϑΝΠϧͷಡΈࠐΈ -BSHF )VHFͷDTW༻ҙͰ͖ͣ ಉن໛ͷQBSRVSUϑΝΠϧΛ ͰಡΈࠐΉʜ0, arrow::open_dataset() # 全国1年分(2021年) traffic_large <- open_dataset(here::here("data/typeB/"), schema = jartic_typeB_schema) |> filter(year == 2021) dim(traffic_large) #> [1] 3923767686 12 lobstr::obj_size(traffic_large) #> 487.10 kB # 全国4年分 traffic_huge <- open_dataset(here::here("data/typeB/"), schema = jartic_typeB_schema) dim(traffic_huge) #> [1] 15677276121 12 lobstr::obj_size(traffic_huge) #> 261.59 kB -BSHF )VHF ॲཧͷ಺༰ʹΑͬͯ͸݁ՌΛಘΒΕΔঢ়ଶ

Slide 31

Slide 31 text

݁ՌάϧʔϓԽͱूܭ BSSPX 🏅 4NBMM

Slide 32

Slide 32 text

݁ՌάϧʔϓԽͱूܭ BSSPX 🏅 .FEJVN

Slide 33

Slide 33 text

݁ՌάϧʔϓԽͱूܭ छͷσʔλαΠζͷ݁ՌΛൺֱ σʔλαΠζʹԠ࣮ͯ͡ߦ࣌ؒ΋૿Ճ

Slide 34

Slide 34 text

݁Ռ݁߹ EQMZS 🏅 4NBMM

Slide 35

Slide 35 text

݁Ռ݁߹ BSSPX 🏅 .FEJVN

Slide 36

Slide 36 text

݁Ռ݁߹ -BSHF )VHFͱ΋ʹࣦഊ fi MUFS΍EJTUJODUΛͤͣʹ݁߹ͨͨ͠Ίʁ tictoc::tic(); traffic_large |> distinct(location_no, meshcode10km) |> left_join(arrow_mesh10km, by = c("meshcode10km" = "meshcode10km")) |> collect(); tictoc::toc() #> 16.746 sec elapsed tictoc::tic(); traffic_huge |> distinct(location_no, meshcode10km) |> left_join(arrow_mesh10km, by = c("meshcode10km" = "meshcode10km")) |> collect(); tictoc::toc() #> 67.593 sec elapsed EJTUJODUΛڬΊ͹0, -BSHF )VHF

Slide 37

Slide 37 text

ॴݟ ύʔςΟγϣχϯάͷج४ͷܾΊํ͕ॏཁ \BSSPX^Ͱେن໛ͳσʔλΛॲཧͰ͖Δʢগͳ͘ͱ΋ΠϯϝϞϦͷঢ়ଶʹʣ େن໛ͳϑΝΠϧ͸QBSRVFUͰอଘ͓ͯ͘͠ͷ͕ྑͦ͞͏ ͲΜͳͱ͖ʢαΠζɾॲཧ಺༰ʣͰ΋\BSSPX^͕ϕετͳબ୒ࢶͰ͸ͳ͍ αϙʔτ͠ͳ͍ؔ਺ˠ\EVDLEC^΁౉͢ \EBUBUBCMF^ɺ\EUQMZS^΋ؤு͍ͬͯΔ

Slide 38

Slide 38 text

ँࣙ ͜ͷ৔ΛआΓͯײँਃ্͛͠·͢ ɻ ͜ͷൃද͸(JU)VC4QPOTPSTͰࢧԉͯͩ͘͠͞ΔํʑͷఏڙͰ͓ૹΓ͠·ͨ͠ɻ katsurakob siero5335 ito4303 niszet Nishina-NIES teram onagi takehikoihayashi ytknzw IUUQTHJUIVCDPNTQPOTPSTVSJCP

Slide 39

Slide 39 text

ࢀߟจݙɾ63- ͦΖͦΖ3Ϣʔβʔ΋"QBDIF"SSPXͰ1BSRVFUΛ࢖ͬͯΈ·ͤΜ͔ʁ 
 3GPS%BUB4DJFODF OEFEJUJPO 
 "QBDIF"SSPXϑΥʔϚοτ͸ͳͥ଎͍ͷ͔ 
 ʲ3ʳ"QBDIF"SSPXͱEVDLECΛࢼͯ͠ΈΔ2JJUB 
 "QBDIF"SSPXَ͸͑͑ʂ͜ͷ··$47શ෦1BSRVFUʹม׵͍ͯ͜͠͏ͥʂ 
 "QBDIF"SSPX3$PPLCPPL 
 -BSHFS5IBO.FNPSZ%BUB8PSL fl PXTXJUI"QBDIF"SSPX 
 IUUQTOPUDIBJOFEIBUFOBCMPHDPNFOUSZ IUUQTSETIBEMFZO[BSSPXIUNM IUUQTTMJEFSBCCJUTIPDLFSPSHBVUIPSTLPVECUFDITIPXDBTFPOMJOF IUUQTFJUTVQJHJUIVCJPUPLZPSTMJEFUPLZPS@ IUUQTBSSPXVTFSOFUMJGZBQQ IUUQTBSSPXBQBDIFPSHDPPLCPPLSJOEFYIUNM IUUQTRJJUBDPNFJUTVQJJUFNTDFFCGCFFEF