(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{580:function(e,a,t){"use strict";t.r(a);var o=t(69),n=Object(o.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h2",{attrs:{id:"powered-by"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#powered-by"}},[e._v("#")]),e._v(" Powered By")]),e._v(" "),t("h3",{attrs:{id:"project-and-product-names-using-iotdb"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#project-and-product-names-using-iotdb"}},[e._v("#")]),e._v(' Project and Product names using "IoTDB"')]),e._v(" "),t("p",[e._v("Organizations creating products and projects using Apache IoTDB, along with associated marketing materials, should take care to respect the trademark in “Apache IoTDB” and its logo. Please refer to "),t("a",{attrs:{href:"https://www.apache.org/foundation/marks/",target:"_blank",rel:"noopener noreferrer"}},[e._v("ASF Trademarks Guidance"),t("OutboundLink")],1),e._v(" and associated "),t("a",{attrs:{href:"https://www.apache.org/foundation/marks/faq/",target:"_blank",rel:"noopener noreferrer"}},[e._v("FAQ"),t("OutboundLink")],1),e._v(' for comprehensive and authoritative guidance on proper usage of ASF trademarks.\nIt is recommended to not include “IoTDB” in any names to prevent potential trademark issue with the IoTDB project.\nAs an example, names like “IoTDB BigDataProduct” should not be used, as the name include “IoTDB” in general. The above links, however, describe some exceptions, like for names such as “BigDataProduct, powered by Apache IoTDB” or “BigDataProduct for Apache IoTDB”. In summary, any names contain "Apache IoTDB" as a whole are acceptable.'),t("br"),e._v("\nA common practice you can take is to create software identifiers (Maven coordinates, module names, etc.) like “iotdb-tool”. These are permitted. Nominative use of trademarks in descriptions is also allowed, as in “BigDataProduct is a subproduct for Apache IoTDB”.")]),e._v(" "),t("h3",{attrs:{id:"companies-and-organizations"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#companies-and-organizations"}},[e._v("#")]),e._v(" Companies and Organizations")]),e._v(" "),t("p",[e._v("To add yourself to the list, please email dev@iotdb.apache.org with your organization name, URL, a list of IoTDB components you are using, and a short description of your use case.")]),e._v(" "),t("p",[e._v("You can also leave the info on "),t("a",{attrs:{href:"https://github.com/apache/iotdb/issues/748",target:"_blank",rel:"noopener noreferrer"}},[e._v("Github"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("ul",[t("li",[t("p",[e._v("School of Software (Tsinghua University), and National Engineering Laboratery for Big Data Software  that initially launched IoTDB")]),e._v(" "),t("ul",[t("li",[e._v("We have both graduate students and a team of professional software engineers working on the stack")]),e._v(" "),t("li",[e._v("We use Apache IoTDB in Shanghai Metro and two other cities in China to replace KairosDB.")]),e._v(" "),t("li",[e._v("We use Apache IoTDB in CMA (China Meteorological Administration) for storing 10-years station data. There are about 100 thousand stations.")])])]),e._v(" "),t("li",[t("p",[e._v("Lenovo developed TsFile Go version, and uses it in YOFC (Yangtze Optical Fiber and Cable Company). The system collects data from more than 90 thousand data points, stores them to the TsFile (with Go) as the edge storage and then reads them later to send to the cloud.")])]),e._v(" "),t("li",[t("p",[e._v("Goldwind uses Apache IoTDB to manage the wind turbine data. They consume the SCADA data from Kafka, write to IoTDB and use IoTDB to support queries.")])]),e._v(" "),t("li",[t("p",[e._v("DaTangXianYi deployed IoTDB in many power stations in China.")])]),e._v(" "),t("li",[t("p",[e._v("Beijing ZhiChuangXinKe uses IoTDB to store the battery data of signal towers for China Tower company. There are about 3 million towers.")])]),e._v(" "),t("li",[t("p",[e._v("Beijing QingZhiWuLian uses IoTDB for electric generator's monitoring. Currently they look forward to the cluster mode of IoTDB.")])]),e._v(" "),t("li",[t("p",[e._v("JianLongGangTie is testing IoTDB for using it in their applications.")])])])])}),[],!1,null,null,null);a.default=n.exports}}]);