{"id":19816,"date":"2024-03-15T19:29:33","date_gmt":"2024-03-15T19:29:33","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-calculate-data-for-one-day-using-flink\/"},"modified":"2024-03-21T16:36:15","modified_gmt":"2024-03-21T16:36:15","slug":"how-to-calculate-data-for-one-day-using-flink","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-calculate-data-for-one-day-using-flink\/","title":{"rendered":"How to calculate data for one day using Flink?"},"content":{"rendered":"<p>To calculate data for one day, you can use Flink&#8217;s window operations. One way to do this is by using Flink&#8217;s window operations to calculate data for one day.<\/p>\n<p>First, group the data stream based on timestamps, then define the window size as one day using Tumbling Windows. Next, apply aggregation functions on the window to calculate statistical results.<\/p>\n<p>Below is an example code:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-comment\">\/\/ \u5bfc\u5165\u76f8\u5173\u7684\u7c7b<\/span>\r\n<span class=\"hljs-keyword\">import<\/span> org.apache.flink.api.common.functions.AggregateFunction;\r\n<span class=\"hljs-keyword\">import<\/span> org.apache.flink.api.java.tuple.Tuple;\r\n<span class=\"hljs-keyword\">import<\/span> org.apache.flink.streaming.api.datastream.DataStream;\r\n<span class=\"hljs-keyword\">import<\/span> org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;\r\n<span class=\"hljs-keyword\">import<\/span> org.apache.flink.streaming.api.windowing.time.Time;\r\n\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">DailyDataStatistics<\/span> {\r\n\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">main<\/span><span class=\"hljs-params\">(String[] args)<\/span> <span class=\"hljs-keyword\">throws<\/span> Exception {\r\n        <span class=\"hljs-comment\">\/\/ \u521b\u5efa\u6267\u884c\u73af\u5883<\/span>\r\n        <span class=\"hljs-type\">StreamExecutionEnvironment<\/span> <span class=\"hljs-variable\">env<\/span> <span class=\"hljs-operator\">=<\/span> StreamExecutionEnvironment.getExecutionEnvironment();\r\n\r\n        <span class=\"hljs-comment\">\/\/ \u521b\u5efa\u6570\u636e\u6d41<\/span>\r\n        DataStream&lt;Data&gt; dataStream = ...;  <span class=\"hljs-comment\">\/\/ \u6839\u636e\u5b9e\u9645\u60c5\u51b5\u521b\u5efa\u6570\u636e\u6d41<\/span>\r\n\r\n        <span class=\"hljs-comment\">\/\/ \u4f7f\u7528\u65f6\u95f4\u6233\u8fdb\u884c\u5206\u7ec4<\/span>\r\n        DataStream&lt;Data&gt; groupedStream = dataStream.keyBy(<span class=\"hljs-string\">\"timestamp\"<\/span>);\r\n\r\n        <span class=\"hljs-comment\">\/\/ \u5b9a\u4e49\u6eda\u52a8\u7a97\u53e3\uff0c\u7a97\u53e3\u5927\u5c0f\u4e3a\u4e00\u5929<\/span>\r\n        DataStream&lt;Data&gt; windowedStream = groupedStream.timeWindow(Time.days(<span class=\"hljs-number\">1<\/span>));\r\n\r\n        <span class=\"hljs-comment\">\/\/ \u5728\u7a97\u53e3\u4e0a\u5e94\u7528\u805a\u5408\u51fd\u6570\u6765\u8ba1\u7b97\u7edf\u8ba1\u7ed3\u679c<\/span>\r\n        DataStream&lt;Result&gt; resultStream = windowedStream.aggregate(<span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">DailyDataAggregateFunction<\/span>());\r\n\r\n        <span class=\"hljs-comment\">\/\/ \u6253\u5370\u7ed3\u679c<\/span>\r\n        resultStream.print();\r\n\r\n        <span class=\"hljs-comment\">\/\/ \u6267\u884c\u4efb\u52a1<\/span>\r\n        env.execute(<span class=\"hljs-string\">\"Daily Data Statistics\"<\/span>);\r\n    }\r\n\r\n    <span class=\"hljs-comment\">\/\/ \u81ea\u5b9a\u4e49\u805a\u5408\u51fd\u6570<\/span>\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">DailyDataAggregateFunction<\/span> <span class=\"hljs-keyword\">implements<\/span> <span class=\"hljs-title class_\">AggregateFunction<\/span>&lt;Data, Result, Result&gt; {\r\n\r\n        <span class=\"hljs-meta\">@Override<\/span>\r\n        <span class=\"hljs-keyword\">public<\/span> Result <span class=\"hljs-title function_\">createAccumulator<\/span><span class=\"hljs-params\">()<\/span> {\r\n            <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">Result<\/span>();\r\n        }\r\n\r\n        <span class=\"hljs-meta\">@Override<\/span>\r\n        <span class=\"hljs-keyword\">public<\/span> Result <span class=\"hljs-title function_\">add<\/span><span class=\"hljs-params\">(Data data, Result accumulator)<\/span> {\r\n            <span class=\"hljs-comment\">\/\/ \u6839\u636e\u5b9e\u9645\u60c5\u51b5\u66f4\u65b0\u7d2f\u52a0\u5668<\/span>\r\n            accumulator.update(data);\r\n            <span class=\"hljs-keyword\">return<\/span> accumulator;\r\n        }\r\n\r\n        <span class=\"hljs-meta\">@Override<\/span>\r\n        <span class=\"hljs-keyword\">public<\/span> Result <span class=\"hljs-title function_\">getResult<\/span><span class=\"hljs-params\">(Result accumulator)<\/span> {\r\n            <span class=\"hljs-keyword\">return<\/span> accumulator;\r\n        }\r\n\r\n        <span class=\"hljs-meta\">@Override<\/span>\r\n        <span class=\"hljs-keyword\">public<\/span> Result <span class=\"hljs-title function_\">merge<\/span><span class=\"hljs-params\">(Result a, Result b)<\/span> {\r\n            <span class=\"hljs-keyword\">return<\/span> a.merge(b);\r\n        }\r\n    }\r\n\r\n    <span class=\"hljs-comment\">\/\/ \u6570\u636e\u7c7b<\/span>\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">Data<\/span> {\r\n        <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-type\">long<\/span> timestamp;\r\n        <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-type\">double<\/span> value;\r\n    }\r\n\r\n    <span class=\"hljs-comment\">\/\/ \u7ed3\u679c\u7c7b<\/span>\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">Result<\/span> {\r\n        <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-type\">long<\/span> count;\r\n        <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-type\">double<\/span> sum;\r\n        <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-type\">double<\/span> min;\r\n        <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-type\">double<\/span> max;\r\n\r\n        <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">update<\/span><span class=\"hljs-params\">(Data data)<\/span> {\r\n            count++;\r\n            sum += data.value;\r\n            <span class=\"hljs-keyword\">if<\/span> (data.value &lt; min) {\r\n                min = data.value;\r\n            }\r\n            <span class=\"hljs-keyword\">if<\/span> (data.value &gt; max) {\r\n                max = data.value;\r\n            }\r\n        }\r\n\r\n        <span class=\"hljs-keyword\">public<\/span> Result <span class=\"hljs-title function_\">merge<\/span><span class=\"hljs-params\">(Result other)<\/span> {\r\n            count += other.count;\r\n            sum += other.sum;\r\n            <span class=\"hljs-keyword\">if<\/span> (other.min &lt; min) {\r\n                min = other.min;\r\n            }\r\n            <span class=\"hljs-keyword\">if<\/span> (other.max &gt; max) {\r\n                max = other.max;\r\n            }\r\n            <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-built_in\">this<\/span>;\r\n        }\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>In the example code above, an execution environment and a data stream are first created. Then, the data is grouped by timestamp using the keyBy method. Next, a rolling window is defined with a size of one day using the timeWindow method. After that, a custom aggregation function is applied to the window using the aggregate method. Finally, the results are printed and the task is executed.<\/p>\n<p>In custom aggregate functions, the createAccumulator method is used to create the accumulator, the add method is used to update the accumulator, the getResult method is used to get the final result, and the merge method is used to combine multiple accumulators. In the example above, the accumulator stores statistical information such as count, sum, minimum, and maximum values.<\/p>\n<p>Please modify the sample code according to your actual situation to adapt it to your data type and statistical needs.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>To calculate data for one day, you can use Flink&#8217;s window operations. One way to do this is by using Flink&#8217;s window operations to calculate data for one day. First, group the data stream based on timestamps, then define the window size as one day using Tumbling Windows. Next, apply aggregation functions on the window [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-19816","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to calculate data for one day using Flink? - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-calculate-data-for-one-day-using-flink\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to calculate data for one day using Flink?\" \/>\n<meta property=\"og:description\" content=\"To calculate data for one day, you can use Flink&#8217;s window operations. One way to do this is by using Flink&#8217;s window operations to calculate data for one day. First, group the data stream based on timestamps, then define the window size as one day using Tumbling Windows. Next, apply aggregation functions on the window [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-calculate-data-for-one-day-using-flink\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T19:29:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T16:36:15+00:00\" \/>\n<meta name=\"author\" content=\"William Carter\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"William Carter\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-calculate-data-for-one-day-using-flink\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-calculate-data-for-one-day-using-flink\/\"},\"author\":{\"name\":\"William Carter\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/f697031891aacefc4b681d139781d3c0\"},\"headline\":\"How to calculate data for one day using Flink?\",\"datePublished\":\"2024-03-15T19:29:33+00:00\",\"dateModified\":\"2024-03-21T16:36:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-calculate-data-for-one-day-using-flink\/\"},\"wordCount\":221,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-calculate-data-for-one-day-using-flink\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-calculate-data-for-one-day-using-flink\/\",\"name\":\"How to calculate data for one day using Flink? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T19:29:33+00:00\",\"dateModified\":\"2024-03-21T16:36:15+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-calculate-data-for-one-day-using-flink\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-calculate-data-for-one-day-using-flink\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-calculate-data-for-one-day-using-flink\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to calculate data for one day using Flink?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/f697031891aacefc4b681d139781d3c0\",\"name\":\"William Carter\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g\",\"caption\":\"William Carter\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/williamcarter\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to calculate data for one day using Flink? - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-to-calculate-data-for-one-day-using-flink\/","og_locale":"en_US","og_type":"article","og_title":"How to calculate data for one day using Flink?","og_description":"To calculate data for one day, you can use Flink&#8217;s window operations. One way to do this is by using Flink&#8217;s window operations to calculate data for one day. First, group the data stream based on timestamps, then define the window size as one day using Tumbling Windows. Next, apply aggregation functions on the window [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-calculate-data-for-one-day-using-flink\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T19:29:33+00:00","article_modified_time":"2024-03-21T16:36:15+00:00","author":"William Carter","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"William Carter","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-calculate-data-for-one-day-using-flink\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-calculate-data-for-one-day-using-flink\/"},"author":{"name":"William Carter","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/f697031891aacefc4b681d139781d3c0"},"headline":"How to calculate data for one day using Flink?","datePublished":"2024-03-15T19:29:33+00:00","dateModified":"2024-03-21T16:36:15+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-calculate-data-for-one-day-using-flink\/"},"wordCount":221,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-calculate-data-for-one-day-using-flink\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-calculate-data-for-one-day-using-flink\/","name":"How to calculate data for one day using Flink? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T19:29:33+00:00","dateModified":"2024-03-21T16:36:15+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-calculate-data-for-one-day-using-flink\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-calculate-data-for-one-day-using-flink\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-calculate-data-for-one-day-using-flink\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to calculate data for one day using Flink?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/f697031891aacefc4b681d139781d3c0","name":"William Carter","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g","caption":"William Carter"},"url":"https:\/\/www.silicloud.com\/blog\/author\/williamcarter\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/19816","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=19816"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/19816\/revisions"}],"predecessor-version":[{"id":53578,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/19816\/revisions\/53578"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=19816"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=19816"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=19816"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}