çŸåšã®ããžã¿ã«äŒæ¥ç°å¢ã«ãããŠãçµç¹ã¯ãŸããŸãè³ç£ç®¡çãœãªã¥ãŒã·ã§ã³ã«äŸåããŠæ¥åãåçåããŠããŸããäŒæ¥ã¯ãè€æ°ã® IT ã·ã¹ãã ãéçšæè¡ (OT) ã·ã¹ãã ã§åãç©çè³ç£ã管çããå¿
èŠã«çŽé¢ããããšããããããŸããIT ããŒã ãäŒæ¥ã® IT è³ç£ã远跡ã»ç®¡çããã®ã«åœ¹ç«ã€ãµãŒãã¹ã® 1 ã€ã ServiceNow ã§ãããã®ãµãŒãã¹ã¯ãããŒããŠã§ã¢ããœãããŠã§ã¢ã®åšåº«ç®¡çããµãŒãã¹èŠæ±ãã©ã€ã»ã³ã¹ã³ã³ãã©ã€ã¢ã³ã¹ããã¯ãããžãŒãªãœãŒã¹ã®å®å
šãªã©ã€ããµã€ã¯ã«ãäžå
çã«æ±ããŸããäžæ¹ãOT åãã® AWS IoT SiteWise ã¯ãäŒæ¥ãç£æ¥æ©åšã®ããŒã¿ãå€§èŠæš¡ã«åéãäœç³»åãåæã§ãã管çãµãŒãã¹ã§ãããã®ãµãŒãã¹ã§ã¯ãã©ã€ãããã³éå»ã®éçšããŒã¿ãçµ±åãªããžããªã«ãŸãšããããšãã§ãããããçµç¹ã¯çç£å¹çã®åäžãšè³ç£ä¿å®ã®æé©åã«åœ¹ç«ã€ããŒã¿é§ååã®æææ±ºå®ãã§ããŸãã ServiceNow ãš AWS IoT SiteWise ãäžç·ã«äœ¿ãéã«çµç¹ãçŽé¢ããäžè¬çãªèª²é¡ã¯ãã·ã¹ãã éã§è³ç£æ
å ±ãäžè²«ããŠç¶æããããšã§ããServiceNow ã§è³ç£éå±€ãæŽæ°ããããšãéçšããŒã 㯠AWS IoT SiteWise ã§ãããã®å€æŽãæåã§è€è£œããå¿
èŠããããéè€ããäœæ¥ãæŽåæ§ãæãªãããå¯èœæ§ããããŸãããã®ããã»ã¹ã¯æéããããããšã©ãŒãçºçãããããäž¡ç°å¢ã§åãè³ç£ã管çããç¡é§ãçããŸãããã®ããã°èšäºã§ã¯ãServiceNow ãš AWS IoT SiteWise éã§è³ç£ããŒã¿ãåæããææ³ã玹ä»ããŸãããã®çµ±åãã¿ãŒã³ãå®è£
ããããšã§ãæåã«ããæŽæ°ãæé€ãããšã©ãŒãæžãããIT ãš OT ãã©ãããã©ãŒã ã§è³ç£éå±€ãäžè²«ããŠç¶æã§ããŸãã ãœãªã¥ãŒã·ã§ã³æŠèŠ ãã®ãœãªã¥ãŒã·ã§ã³ã§ã¯ãAWS ã®ãµãŒãã¹ã䜿çšããŠãServiceNow ãš AWS IoT SiteWise ã®éã®èªåçµ±åãå®çŸããŠããŸãã ServiceNow ã®è³ç£ç®¡çã·ã¹ãã ã§å€æŽããã£ãå Žåãèªåçã« AWS IoT SiteWise ã«åæ ããããããäž¡ã·ã¹ãã ã®åæãç¶æãããŸãã å³ 1: ã¢ãŒããã¯ãã£ å³ 1 㯠2 ãã§ãŒãºã®ããŒã¿ãããŒã瀺ããŠããŸããæåã®ãã§ãŒãº (Ingest) ã§ã¯ãããŒã¿ã ServiceNow ãã Amazon AppFlow ãçµç±ã㊠Amazon Simple Storage Service (Amazon S3) ã«ç§»åããŸãã2 çªç®ã®ãã§ãŒãº (Import) ã§ã¯ãããŒã¿ã¯ AWS Glue ãçµç±ããAWS IoT SiteWise ã«å°éããåã« Amazon S3 ã«æ»ããŸãã äž¡æ¹ã®ãã§ãŒãºã§ã¯ç°ãªãç®çããµãŒãã¹ãããŠããŸãã ã€ã³ãžã§ã¹ããã§ãŒãº Amazon AppFlow ã¯ãServiceNow ã®ããŒãã« (Operations Technology (OT)ãOT EntityãOT Entity Type) ããã¢ã»ããããŒã¿ãååŸããŸãã ãã®ããŒã¿ã¯ããã®åŸ Amazon S3 ã« parquet åœ¢åŒ ã§æ ŒçŽãããŸãã ã€ã³ããŒããã§ãŒãº AWS Glue ã¯ãParquet ãã¡ã€ã«ã AWS IoT SiteWise ãã€ã³ããŒãã§ãã JSON åœ¢åŒ ã«å€æããŸãã 倿ããã JSON ãã¡ã€ã«ã¯ãAmazon S3 ã«ä¿åãããŸãã AWS IoT SiteWise ã¯ãã¢ã»ããæ
å ±ãã€ã³ããŒãããŠã¢ã»ããã¢ãã«ãšéå±€ãäœæãŸãã¯æŽæ°ããŸãã å®è£
ã®æŠèŠ ãã®æçš¿ã§ã¯ããã®çµ±åãå®è£
ããããã®ä»¥äžã®æ®µéãæç€ºããŠããŸã: Amazon AppFlow ã§ ServiceNow ã³ãã¯ã¿ãæ§æããã¢ã»ããããŒã¿ã Amazon S3 ã«åã蟌ã¿ãŸãã AWS Glue ãžã§ããäœæããããŒã¿ã parquet 圢åŒãã JSON 圢åŒã«å€æããŠãAWS IoT SiteWise ã€ã³ããŒãã®å¿
é ãã©ãŒãããã«äžèŽãããŸãã Amazon S3 ãã AWS IoT SiteWise ãžã®ã¢ã»ããã€ã³ããŒããèšå®ããŸãã åææ¡ä»¶ ãã®ãœãªã¥ãŒã·ã§ã³ãå®è£
ããåã«ã次ã®ãã®ãå¿
èŠã§ãã ã¢ã»ããããŒãã«ãžã®ã¢ã¯ã»ã¹æš©ãæã€ ServiceNow ã€ã³ã¹ã¿ã³ã¹ããã®äŸã§ã¯ã次ã®ãã®ã䜿çšããŸãã Operations Technology (OT) ( cmdb_ci_ot ): ServiceNow ããã®OTããã€ã¹ã¬ã³ãŒãããããã®ã¬ã³ãŒãã«ã¯ãååãã·ãªã¢ã«çªå·ãã¢ãã«çªå·ãã¡ãŒã«ãŒãããã³å Žææ
å ±ãªã©ã®åºæ¬çãªå±æ§ãå«ãŸããŸãã OT Entity ( cmdb_ot_entity ): OT ãšã³ãã£ãã£ã€ã³ã¹ã¿ã³ã¹ãšãããã®é¢ä¿ãå®çŸ©ããã¬ã³ãŒããå«ãŸããŠããŸãããŸããéçšéå±€ã§ããã€ã¹ãã©ã®ããã«æ¥ç¶ãããŠãããã衚ããŠããŸãã OT Entity Type ( cmdb_ot_entity_type ): OT ãšã³ãã£ã㣠(AreaãProcess CellãUnitãEquipment Module ãªã©) ã®ã¿ã€ããŸãã¯ã«ããŽãªãå®çŸ©ããã¬ã³ãŒããå«ãŸããŠããŸãããŸããéçšéå±€å
ã§èš±å¯ããã芪åé¢ä¿ãå®çŸ©ããŸãã 3 ã€ã®ããŒãã«ãããããã®åœ¹å²ã飿ºããŠãOT ã¢ã»ããã®å
šäœåãæäŸããŸãã cmdb_ci_ot ã¯ç©çããã€ã¹æ
å ± (æ§æé
ç®) ãåŠçããŸãã cmdb_ot_entity ã¯ãããã®ããã€ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãšé¢ä¿æ§ã管çããŸãã cmdb_ot_entity_type ã¯éå±€æ§é ã®ã«ãŒã«ãšã«ããŽãªãå®çŸ©ããŸãã Amazon AppFlowãAmazon S3ãAWS GlueãAWS IoT SiteWise ã䜿çšããããã®æš©éãæã€ AWS ã¢ã«ãŠã³ãã ã¢ã»ããããŒãã«ã®èªã¿åãæš©éãæã€ system-only user ã® ServiceNow èªèšŒæ
å ±ã å®è£
ServiceNow ã³ãã¯ã¿ã®æ§æ ãã®ã»ã¯ã·ã§ã³ã§ã¯ãAmazon AppFlow ãèšå®ã㊠ServiceNow ããããŒã¿ãåã蟌ã¿ãAWS Glue ã§ããŒã¿ãã«ã¿ãã°åããŸãã Amazon AppFlow ã§ ServiceNow ã³ãã¯ã¿ãäœæãã Amazon AppFlow ã³ã³ãœãŒã«ã«ç§»åããŸãã å·ŠåŽã®ã¡ãã¥ãŒããã Connections ã®äžã® ServiceNow ãã³ãã¯ã¿ã®ããããããŠã³ããéžæããŸãã Create connection ãéžæããŸãã Connect to ServiceNow ã®ãããã¢ããã§ãå³ 2 ãåç
§ããæ¬¡ã®æ
å ±ãå
¥åããŸãã å¿
èŠã«å¿ã㊠Basic Auth ãŸã㯠OAuth2 ãéžæããŸãã ãŠãŒã¶ãŒã¬ã€ã ã«åŸã£ãŠå¿
èŠãªæ
å ±ãå
¥åããŸãã OAuth2 ãéžæããå Žåã¯ãServiceNow ã€ã³ã¹ã¿ã³ã¹ã® Client IDãClient secretãInstance URL ãå
¥åããŸãã Basic Auth ãéžæããå Žåã¯ãServiceNow ã€ã³ã¹ã¿ã³ã¹ã® UsernameãPasswordãInstance URL ãå
¥åããŸãã ãã¹ãŠã®æ
å ±ãå
¥åãããã connect ãã¯ãªãã¯ããŸãã å³ 2: ServiceNow ã«æ¥ç¶ãã åããŒãã«ããšã«ãããŒãäœæããŸã Amazon AppFlow ã³ã³ãœãŒã«ã«ç§»åããŸãã å·ŠåŽã®ã¡ãã¥ãŒã§ã Flows ã®äžã«ãã Create flow ãéžæããŸãã Flow Name (äŸ: cmdb_ci_ot ) ãå
¥åããå³ 3 ãåç
§ã®äžã Next ãéžæããŸãã å³ 3: ãããŒãäœæãã ããœãŒã¹è©³çްããã€ã¢ãã°ããã¯ã¹ã§ (å³ 4 åç
§)ãæ¬¡ã®å
容ãå
¥åããŸã: ããœãŒã¹åãã§ã¯ã ServiceNow ãéžæããŸãã ãåã«äœæããæ¥ç¶ã ServiceNow ã³ãã¯ã¿ ã®äžã§éžæãããŠããããšã確èªããŠãã ãããåç
§åã¯ãã䜿ãã® ServiceNow ã€ã³ã¹ã¿ã³ã¹åã«ãªããŸãããã®äŸã§ã¯ âdev287617â ã䜿çšããŠããŸãã ServiceNow ãªããžã§ã¯ã ã§ã¯ã Operational Technology (OT) ãéžæããŸãã å®å
詳现 ãã€ã¢ãã°ããã¯ã¹ (å³ 4 åç
§) ã«ç§»åããæ¬¡ã®å
容ãå
¥åããŸã: å®å
å ã§ã¯ã Amazon S3 ãéžæããŸãã ãã±ãã詳现 ã®äžã§ãå®å
ã®ãã±ãããéžæãããã æ°ããäœæ ( Amazon S3 ã³ã³ãœãŒã« ãã)ããŸãããã®äŸã§ã¯ãã±ãããã¬ãã£ãã¯ã¹ cmdb_ci_ot ã䜿çšããŠããŸãã Next ãéžæããŸãã å³ 4: ãããŒã®ãœãŒã¹ãšéä¿¡å
ãœãŒã¹ ãã å®å
ãžã®ãã£ãŒã«ã ãããã³ã° ãã€ã¢ãã°ããã¯ã¹ã§ (å³ 5 åç
§)ã以äžã®äœæ¥ãè¡ããŸãã ãœãŒã¹ ãã£ãŒã«ãå ã®äžã§ã ãã¹ãŠã®ãã£ãŒã«ããçŽæ¥ããããã ãéžæããŸãã Next ãéžæããç¶ã㊠Next ãéžæããŸãã æåŸã« ãããŒãå®è¡ ãéžæããŠå®äºããŸãã å³ 5: å®è¡ãã㌠ãã¹ãŠã®ããŒãã«ã«å¯ŸããŠãããŒãäœæãã âCreate flows for each tableâ ã®æé ãç¹°ãè¿ããä»ã® ServiceNow ãªããžã§ã¯ããšã®æ¥ç¶ãäœæããŠãã ãã: ãããŒåãš Amazon S3 ãã¬ãã£ãã¯ã¹: cmdb_ot_entity ãServiceNow ãªããžã§ã¯ã: OT Assetã ãããŒåãš Amazon S3 ãã¬ãã£ãã¯ã¹: cmdb_ot_entity_type ãServiceNow ãªããžã§ã¯ã: OT Asset Typeã AWS Glue Crawler ãã»ããã¢ããããã¹ããŒããç¹å®ããããã«å®è¡ AWS Glue ã³ã³ãœãŒã«ã«ç§»åããŸãã å·Šã®ã¡ãã¥ãŒãã Data Catalog ã®äžã«ãã Crawlers ãéžæããŸãã Crawlers ãã€ã¢ãã°ããã¯ã¹ (å³ 6 åç
§) ã§ã Create crawler ãéžæããŸãã å³ 6: AWS Glue Crawlers Crawler å ã«ã¯ ServiceNow Crawler ã䜿ãã Next ãéžæããŠãã ããã å³ 7: Crawler ã® properties Add an S3 data source ãéžæããŸãã Add an S3 data source ãã€ã¢ãã°ããã¯ã¹ã§ (å³ 8 ãåç
§)ã以äžã®æé ã«åŸããŸãã ããŒã¿ãœãŒã¹ ãšã㊠S3 ãéžã³ãŸãã S3 path ãšã㊠<your_bucket_name> ãå
¥åããŸãã Add an S3 data source ãéžæããŸãã å³ 8: Crawler data source Next ãéžæããŸãã IAM ããŒã«ã®é
ç®ã§ã Create new IAM role ãéžæããŠãã ãã (å³ 9 ãåç
§)ã å³ 9: Crawler IAM Role ããŒã«ã®ååãæ±ºããŸãããã®äŸã§ã¯ AWSGlueServiceRole-ServiceNowCrawler ã䜿çšããŸãã Next ãéžæããŸãã ã¿ãŒã²ããããŒã¿ããŒã¹ã®äžã§ãAWS Glue ããŒã¿ããŒã¹ãéžæããŸãããã®äŸã§ã¯ããã©ã«ãã®ããŒã¿ããŒã¹ã䜿çšããŠããŸãã å³ 10: AWS Glue ããŒã¿ããŒã¹ã®éžæ Next ãéžæããŸãã Create ãéžæããŸãã ã¯ããŒã«ãå®è¡ããŸããå®äºããã®ã«çŽ 2 åããããŸãã ServiceNow ã® Parquet ããŒã¿ã¯ãAmazon S3 ã«ã€ã³ããŒããããŸããã JSON ãã¡ã€ã«ã®å€æ ãã®ã»ã¯ã·ã§ã³ã§ã¯ãAWS Glue ãžã§ããèšå®ã㊠parquet ãã¡ã€ã«ã AWS IoT SiteWise ã«é©ãã JSON 圢åŒã«å€æããããŒã¿ã AWS IoT SiteWise ã«ã€ã³ããŒãããŸã AWS Glue ãžã§ããäœæ AWS Glue ã³ã³ãœãŒã«ã«ç§»åããŸãã å·ŠåŽã®ã¡ãã¥ãŒããã ETL Jobs ã®äžã«ãã Visual ETL ãéžæããŸãã Create Job ã§ã Visual ETL ãéžæããŸãã å³ 11: AWS Glue Studio Source ããŒããäœæããŸããéã ãã©ã¹ (+) ãã¿ã³ãéžæã (å³ 12 åç
§)ã Amazon S3 ãéžæããŠãã ããã å³ 12: Visual ETL Name ã§ã¯ãå³ 13 ã®ããã«ããŒãã®ååãä»»æã«ã€ããŠãã ãããããã§ã¯ cmdb_ot_entity ãšããŸãã S3 source type ã§ã¯ã Data Catalog table ãéžæããŠãã ããã Database ã§ã¯ãåã« AWS Glue Crawler ã®ã»ããã¢ããæã«éžæããã¿ãŒã²ããããŒã¿ããŒã¹ãéžãã§ãã ããã Table ã§ã¯ãæåã®è¡š cmbd_ot_entity ãéžæããŠãã ããããã®æé ã cmdb_ci_ot ãš cmdb_ot_entity_type ã®åããŒãã«ã«ã€ããŠç¹°ãè¿ããŠãã ãã ã å³ 13: ãœãŒã¹ããŒãã®è¿œå ã¢ã»ããã AWS IoT SiteWise ã®ã€ã³ããŒã圢åŒã«ããããã å³ 12 ã«ç€ºãããŠããéãã+ããã¿ã³ãéžæããŠãæ°ãã Source ããŒããäœæããŠãã ããã Transform ããŒãã远å ãã SQL Query ãéžæããŠãã ããã Name ã«ã¯ã assetsã ã䜿çšããŠãã ããã Node parents ã«ã¯ããœãŒã¹ããŒã cmdb_ot_entity ãš cmdb_ci_ot ãéžæããŠãã ãããã Input sources ãš SQL Aliases ã«ã¯ãå³ 14 ã«ç€ºãããã«ããããã cmdb_ot_entity ãš cmdb_ci_ot ãéžæããŠãã ããã å³ 14: ã¢ã»ããã®å€æ SQL Query ã«æ¬¡ã®ã¯ãšãªãã³ã㌠& ããŒã¹ãããŠãã ããã SELECT DISTINCT parent.sys_id as assetExternalId, parent.name as assetName, parent.ot_asset_type as assetModelExternalId, COLLECT_LIST( CASE WHEN child.sys_id IS NOT NULL THEN STRUCT( array_join(array(parent.ot_asset_type, child.ot_asset_type), '-') as externalId, child.sys_id as childAssetExternalId ) END ) as assetHierarchies, ( CASE WHEN ot.sys_id IS NOT NULL THEN array( STRUCT('name' as externalId, ot.name as attributeValue), STRUCT('serial_number' as externalId, ot.serial_number as attributeValue), STRUCT('manufacturer' as externalId, ot.manufacturer as attributeValue), STRUCT('model_number' as externalId, ot.model_number as attributeValue), STRUCT('firmware_version' as externalId, ot.firmware_version as attributeValue), STRUCT('hardware_version' as externalId, ot.hardware_version as attributeValue), STRUCT('asset_tag' as externalId, ot.asset_tag as attributeValue), STRUCT('category' as externalId, ot.category as attributeValue), STRUCT('environment' as externalId, ot.environment as attributeValue), STRUCT('short_description' as externalId, ot.short_description as attributeValue) ) ELSE array() END ) as assetProperties FROM cmdb_ot_entity as parent LEFT JOIN cmdb_ci_ot as ot ON parent.ot_asset = ot.sys_id LEFT JOIN cmdb_ot_entity as child ON parent.sys_id = child.parent GROUP BY parent.sys_id, parent.name, parent.ot_asset_type, ot.sys_id, ot.name, ot.serial_number, ot.manufacturer, ot.model_number, ot.firmware_version, ot.hardware_version, ot.asset_tag, ot.category, ot.environment, ot.short_description asset model ããããã³ã°ãã å³ 12 ã«ç€ºãããŠããéãã+ããã¿ã³ãéžæããŠãæ°ãã Source ããŒããäœæããŸãã æ°ãã Transform ããŒãã远å ãã SQL Query ãéžæããŸãã Name ã«ã¯ã assetModels ãã䜿çšããŸãã Node Parents ã§ã¯ããœãŒã¹ããŒã cmdb_ot_entity_type ãéžæããŸãã Input sources ãš SQL Aliases ã§ã¯ãå³ 15 ã«ç€ºãããŠããããã«ããããã cmdb_ot_entity_type ã䜿çšããŸãã å³ 15: assetModel 倿 SQL Query ã«æ¬¡ã®ã¯ãšãªãã³ã㌠& ããŒã¹ãããŠãã ããã SELECT DISTINCT parent.sys_id as assetModelExternalId, parent.label as assetModelName, ( CASE WHEN parent.ot_table IS NOT NULL THEN from_json( '[{"dataType":"STRING","externalId":"name","name":"Name","type":{"attribute":{"defaultValue":"-"}},"unit":"-"},{"dataType":"STRING","externalId":"serial_number","name":"Serial Number","type":{"attribute":{"defaultValue":"-"}},"unit":"-"},{"dataType":"STRING","externalId":"manufacturer","name":"Manufacturer","type":{"attribute":{"defaultValue":"-"}},"unit":"-"},{"dataType":"STRING","externalId":"model_number","name":"Model Number","type":{"attribute":{"defaultValue":"-"}},"unit":"-"},{"dataType":"STRING","externalId":"firmware_version","name":"Firmware Version","type":{"attribute":{"defaultValue":"-"}},"unit":"-"},{"dataType":"STRING","externalId":"hardware_version","name":"Hardware Version","type":{"attribute":{"defaultValue":"-"}},"unit":"-"},{"dataType":"STRING","externalId":"asset_tag","name":"Asset Tag","type":{"attribute":{"defaultValue":"-"}},"unit":"-"},{"dataType":"STRING","externalId":"category","name":"Category","type":{"attribute":{"defaultValue":"-"}},"unit":"-"},{"dataType":"STRING","externalId":"environment","name":"Environment","type":{"attribute":{"defaultValue":"-"}},"unit":"-"},{"dataType":"STRING","externalId":"short_description","name":"Short Description","type":{"attribute":{"defaultValue":"-"}},"unit":"-"}]', 'array&amp;lt;struct&amp;lt;dataType:string,externalId:string,name:string,type:struct&amp;lt;attribute:struct&amp;lt;defaultValue:string&amp;gt;&amp;gt;,unit:string&amp;gt;&amp;gt;' ) ELSE array() END ) as assetModelProperties, COLLECT_LIST( CASE WHEN child.sys_id IS NOT NULL THEN STRUCT( array_join(array(parent.sys_id, child.sys_id), '-') as externalId, child.name as name, child.sys_id as childAssetModelExternalId ) END ) as assetModelHierarchies FROM cmdb_ot_entity_type as parent LEFT JOIN cmdb_ot_entity_type as child ON parent.sys_id = child.parent_type GROUP BY parent.sys_id, parent.name, parent.label, parent.ot_table assetsãš asset model ãçµã¿åããã å³ 12 ã«ç€ºãããŠããããã«ãéè²ã® ã+ã ãã¿ã³ãéžæããŠæ°ãã Source ããŒããäœæããŸãã æ°ãã Transform ããŒãã远å ãã SQL Query ãéžæããŸãã Name ã«ã¯ ãassetModelHierarchyã ã䜿çšããŸãã Node parents ã«ã¯ãSource ããŒã assets ãš assetModels ãéžæããŸãã Input sources ãš SQL aliases ã«ã¯ãå³ 16 ã®ããã« assets ãš assetModels ã䜿çšããŸãã å³ 16: assetModelHierarchy 倿 SQL Query ã«æ¬¡ã®ã¯ãšãªãã³ã㌠& ããŒã¹ãããŠãã ããã SELECT ( SELECT COLLECT_LIST(STRUCT(assetModels.*)) as assetModels FROM assetModels ) as assetModels, ( SELECT COLLECT_LIST(STRUCT(assets.*)) as assets FROM assets ) as assets AWS Glue ãžã§ã ã®çµæã AWS IoT SiteWise ã«ã€ã³ããŒãããããã«äœ¿çšããããã倿ã®ã¿ãŒã²ããã远å ããŸãããã 倿ã®ã¿ãŒã²ããã远å ãã å³ 12 ã«ç€ºãããŠããéã ã+ã ãã¿ã³ãéžæããŠãæ°ãããœãŒã¹ããŒããäœæããŸãã æ°ããããŒã Transform ã远å ããã¿ãŒã²ãããã Amazon S3 ãéžæããŸãã Name ã¯äœã§ãæ§ããŸããããã®äŸã§ã¯ Amazon S3 ã䜿çšããŠããŸãã Node Parents ã¯ããœãŒã¹ããŒã assetModelHierarchy ãéžæããŸãã Format 㯠JSON ãéžæããŸãã Compression Type 㯠None ãéžæããŸãã S3 Target Location 㯠<your_destination_bucket> ãéžæããŸãã å³ 17: ã¿ãŒã²ããããŒãã®è¿œå å®äºãããšãå³ 18 ã«ç€ºããã㪠ETL ã確èªã§ããã¯ãã§ãã Save ãéžæããŠãã ããã ãããã Run ãéžæããå®äºãããŸã§åŸ
ã¡ãŸãã å³ 18: ã¢ã»ããã®éå±€ AWS IoT SiteWise ãžã®åã蟌㿠ãã®ã»ã¯ã·ã§ã³ã§ã¯ãAmazon S3 å
ã® JSON ãã¡ã€ã«ã®äœæã確èªããAWS IoT SiteWise ã« ServiceNow ã®ã¢ã»ãããã€ã³ããŒãããŸãã ãŸããæ¬¡ã®æäœãè¡ã£ãŠ JSON ãã¡ã€ã«ãäœæãããããšã確èªããŸãã Amazon S3 ã³ã³ãœãŒã«ãéããŸãã <your_destination_bucket> ãéžæããŸãã run-<timestamp>-part-r-00000 ãã¡ã€ã«ãéžæåŸã ã¢ã¯ã·ã§ã³ ãã¯ãªãã¯ã ãªããžã§ã¯ãã®åå倿Žãéžæãã sitewise-import.json ã«å€æŽãããAWS IoT SiteWise ã«ã€ã³ããŒãããããã«ã¯ããã¡ã€ã«åã« .json ã®æ¡åŒµåãä»ããå¿
èŠããããŸãã AWS IoT SiteWise ã«ã€ã³ããŒãããã«ã¯ãAWS IoT SiteWise ã³ã³ãœãŒã«ãéããŸãã ããã²ãŒã·ã§ã³ãã€ã³ã§ Bulk Operations ãéžæããŸãã New Import ãéžæããŸãã å³ 19: AWS IoT SiteWise bulk operations Import metadata ããS3 URI ã« <your_destination_bucket> ãéžæã sitewise-import.json ãã¡ã€ã«ãæå®ããŸãã å³ 20: S3 import Import ãéžæããã€ã³ããŒããå®äºãããŸã§åŸ
ã¡ãŸãã äœæ¥ã®æ€èšŒ å³ 21 ã«ç€ºãããŠããããã«ãããŸããŸãªã¢ãã«ãšã¢ãã«ããããã£ã衚瀺ã§ããããã«ãªããŸããããŸããå³ 22ã23ã24 ã«ç€ºãããŠããããã«ãããŸããŸãªã¢ã»ãããšã¢ã»ããããããã£ã衚瀺ã§ããŸããããªãã® ServiceNow éå±€ã AWS IoT SiteWise ã«æ£åžžã«è€è£œãããŸããã å³ 21: AWS IoT SiteWise ã¢ãã« å³ 22: AWS IoT SiteWise ã®ã¢ãã«ããããã£ å³ 23: AWS IoT SiteWise ã¢ã»ãã å³ 24: AWS IoT SiteWise ã®ã¢ã»ãããããã㣠ã¯ãªãŒã³ã¢ãã ãã®ããã°ã§èª¬æããäœæ¥ãã¯ãªãŒã³ã¢ããããã«ã¯ãAmazon AppFlow ã³ã³ãœãŒã«ã«ç§»åãããããŒãš ServiceNow ã³ãã¯ã¿ãåé€ããŸããServiceNow ã§äœæãããŠãŒã¶ãŒãšãŠãŒã¶ãŒèªèšŒæ
å ±ãåé€ããŸããAWS Glue ã§ã¯ãCrawler ããžã§ããAWS Glue ããŒã¿ã«ã¿ãã°ããããŒãã«ãåé€ããŸããAWS IoT SiteWise ããã¢ã»ãããšã¢ã»ããã¢ãã«ãåé€ããŸããæåŸã«ãAmazon S3 ãã±ããããParquetãš JSON 圢åŒã®ãã¡ã€ã«ã®äž¡æ¹ãåé€ããŸãã ãŸãšã ãã®ããã°ã§ã¯ãServiceNow ã®ã¢ã»ããããŒã¿ãš AWS IoT SiteWise ãçµ±åããããã»ã¹ã玹ä»ããŸããã ãã®ãã©ã¯ãã£ã¹ã«ãããçµç¹ã¯ IT ãš OT ã®ã¢ã»ãã管çãœãªã¥ãŒã·ã§ã³éã§äžè²«ããã¢ã»ããæ
å ±ãä¿æã§ããŸãã ãã®çµ±åãå®å
šã«èªååããã«ã¯ãAmazon AppFlow ã®ãããŒã«å®æçã«å®è¡ããããã«ã¹ã±ãžã¥ãŒãªã³ã°ããAWS Glue ãžã§ãã«ã¹ã±ãžã¥ãŒã«ã®ããªã¬ãŒãèšå®ããŸãã AWS Glue ãžã§ããèšå®ããéãETL ã¹ã¯ãªããçµç±ã§åºåãã¡ã€ã«ã« â.jsonâ æ¡åŒµåãä»äžããããšãã§ããŸãã ãããã® 2 ã€ã®ãœãªã¥ãŒã·ã§ã³ã«ãããæåã§ã®ããŒã¿å
¥åãæé€ããIT ã·ã¹ãã ãš OT ã·ã¹ãã éã®æŽåæ§ãä¿ãããŸãã AWS IoT SiteWise ã®è©³çްãç¥ãããå Žåã¯ã AWS IoT SiteWise Developer Guide ãã芧ãã ããã ãã®èšäºã¯ Mariaãš Brent ã«ãã£ãŠæžããã Integrating ServiceNow OT Asset Workspaces with AWS IoT SiteWise Asset Models ã®æ¥æ¬èªèš³ã§ãããã®èšäºã¯ãœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ãã®æéšã翻蚳ããŸããã About the authors Maria El Khoury : AWS ã®ãœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ããè£œé æ¥ã®ããžã¿ã«ãã©ã³ã¹ãã©ãŒã¡ãŒã·ã§ã³ãæ¯æŽããIoT ãã³ã³ãã¥ãŒã¿ããžã§ã³ã®çµéšã掻ãããç£æ¥çš IoT ããµãã©ã€ãã§ãŒã³åéãžã® AWS é©çšã«æ³šåã Brent Van Wynsberge : AWS ã®ãœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ãããšã³ã¿ãŒãã©ã€ãºé¡§å®¢ã®ã¯ã©ãŠãå°å
¥ãæ¯æŽãã IoT ã DevOps ãããŒã¿åæãã³ã³ããæè¡ã«ãé¢å¿ãæã€ã Kazunari Hattori èªåè»æ¥çæ
åœã®ãœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ããCCoE ç«ã¡äžããå·¥å Ž IoT ã®å°å
¥ãã¯ã©ãŠã掻çšã®æšé²ã«æ³šåãAWS ã® IoT ã®æè¡ã³ãã¥ããã£ã«æå±ã 第äºçš®é»æ°å·¥äºå£«ã仿¥ãã£ã³ãã³ã°ã«ãŒãã¬ã³ã¿ã«ããŠç§©ç¶ã«ãã£ã³ãã«è¡ããŸããã