The invention relates generally to big data displays and more particularly to systems and methods to provide visualization of big data.
An enterprise may be able to access substantial amounts of data. For example, sensors associated with an industrial asset may continuously record values associated with a parameter (e.g., a temperature, speed, pressure, etc.). It can be difficult, however, for a person to look at the data and understand what the information means (e.g., a person looking at tens of thousands parameter values may find it difficult to identify trends or correlations within the data). Moreover, client platforms, such as personal computers executing browsers, smartphone applications, etc. may not be able to process extremely large quantities of data in a timely fashion. For example, Scalable Vector Graphics (“SVG”) approaches are not well suited to handle extremely large quantities of data. It would therefore be desirable to facilitate a visualization of big data in such a way so as to improve a person's ability to interpret the big data efficiently and/or accurately.
Some embodiments are associated with a big data non-relational database storing a substantial number of electronic files, including a set of values for a first parameter. A server may receive information from the big data non-relational database, and an initial transformation may be applied to the set of values for the first parameter resulting in a set of bucket containers, each bucket container storing information consolidating a plurality of values for the first parameter. A visualization transformation may then be applied to the bucket containers to create a set of pixel information to be transmitted to and rendered by a client platform.
Some embodiments are associated with: means for accessing, via a big data non-relational database storing a substantial number of electronic files, a set of values for a first parameter; means for applying an initial transformation the set of values for the first parameter resulting in a set of bucket containers, each bucket container storing information consolidating a plurality of values for the first parameter; and means for applying a visualization transformation to the bucket containers to create a set of pixel information to be transmitted to and rendered by a client platform.
Other embodiments are associated with systems and/or computer-readable medium storing instructions to perform any of the methods described herein.
Some embodiments disclosed herein facilitate a visualization of big data in such a way so as to improve a person's ability to interpret the big data efficiently and/or accurately. Some embodiments are associated with systems and/or computer-readable medium that may help perform such a method.
Reference will now be made in detail to present embodiments of the invention, one or more examples of which are illustrated in the accompanying drawings. The detailed description uses numerical and letter designations to refer to features in the drawings. Like or similar designations in the drawings and description have been used to refer to like or similar parts of the invention.
Each example is provided by way of explanation of the invention, not limitation of the invention. In fact, it will be apparent to those skilled in the art that modifications and variations can be made in the present invention without departing from the scope or spirit thereof. For instance, features illustrated or described as part of one embodiment may be used on another embodiment to yield a still further embodiment. Thus, it is intended that the present invention covers such modifications and variations as come within the scope of the appended claims and their equivalents.
Some embodiments described herein may automatically facilitate a visualization of big data in such a way so as to improve a person's ability to interpret the data efficiency and/or accurately. For example,
As used herein, the phrase “big data” may refer to data sets so large and/or complex that traditional data processing applications may be inadequate (e.g., to perform appropriate analysis, capture, data curation, search, sharing, storage, transfer, visualization, and/or information privacy for the data). Analysis of big data may lead to new correlations, to spot business trends, prevent diseases, etc. Scientists, business executives, practitioners of media and advertising and governments alike regularly meet difficulties with large data sets in areas including Internet search, finance and business informatics. Scientists encounter limitations in meteorology, genomics, complex physics simulations, biological and environmental research, etc.
Note that data sets may grow in size because they are increasingly gathered by cheap and/or numerous information-sensing mobile devices, aerial (remote sensing), software logs, cameras, microphones, Radio-Frequency Identification (“RFID”) readers, wireless sensor networks, etc.
Relational database management systems and desktop statistics and visualization packages may have difficulty handling big data. The work may instead be performed via parallel software running on multiple servers. Big data usually includes data sets with sizes beyond the ability of commonly used software tools to capture, curate, manage, and process data within a tolerable elapsed time. Some typical characteristics of big data include: Volume: big data doesn't sample. It just observes and tracks what happens; Velocity: big data is often available in real-time; Variety: big data draws from text, images, audio, video; plus it completes missing pieces through data fusion; Machine Learning: big data often doesn't ask why and simply detects patterns; and/or a digital footprint: big data is often a cost-free byproduct of digital interaction.
The visualization server 150 may provide information, such as user customized reports and/or displays based on information in the big data database 110. Note that a big data application might be associated with Hadoop, NoSQL, Watson, Mango, or any other appropriate program.
The visualization server 150 and/or other devices within the system 100 might be, for example, associated with a Personal Computer (“PC”), laptop computer, smartphone, an enterprise server, a server farm, and/or a database or similar storage devices. The visualization server 150 may, according to some embodiments, be associated with an industrial asset enterprise.
According to some embodiments, an “automated” visualization server 150 may facilitate the collection and analysis of big data. For example, the visualization server 150 may automatically customize a display based on the pixels and/or computational power of a client platform 160. As used herein, the term “automated” may refer to, for example, actions that can be performed with little (or no) intervention by a human.
As used herein, devices, including those associated with the visualization server 150 and any other device described herein may exchange information via any communication network which may be one or more of a Local Area Network (LAN), a Metropolitan Area Network (MAN), a Wide Area Network (WAN), a proprietary network, a Public Switched Telephone Network (PSTN), a Wireless Application Protocol (WAP) network, a Bluetooth network, a wireless LAN network, and/or an Internet Protocol (IP) network such as the Internet, an intranet, or an extranet. Note that any devices described herein may communicate via one or more such communication networks.
The visualization server 150 may store information into and/or retrieve information from the big data database 110. The big data database 110 might be locally stored or reside remote from the visualization server 150. As will be described further below, the big data database 110 may be used by the visualization server 150 to facilitate interactions with users of client platforms 160. According to some embodiments, the visualization server 150 communicates information associated with big data to a remote device and/or to an automated system, such as by transmitting an electronic file to a user device, an email server, a workflow management system, a predictive model, a map application, etc.
Although a single visualization server 150 is shown in
Note that the system 100 of
At S210, the system may access, via a big data non-relational database storing a substantial number of electronic files, a set of values for a first parameter. Note that the set of values for the first parameter in the big data non-relational database might be associated with, by way of example, an asset management program.
At S220, the system may apply an initial transformation the set of values for the first parameter resulting in a set of bucket containers, each bucket container storing information consolidating a plurality of values for the first parameter. Note that the number of bucket containers might be based at least in part on pixel information associated with the client platform. Further note that the initial transformation may be associated with at least one of: (i) a sampling function, (ii) an averaging function, (iii) a minimum value, (iv) a maximum value, and/or (v) a median value. According to some embodiments, at least some of the bucket containers may be processed asynchronously in parallel.
At S230, the system may apply a visualization transformation to the bucket containers to create a set of pixel information to be transmitted to and rendered by a client platform. According to some embodiments, the initial transformation and visualization transformation are performed at the big data non-relational database and the set of pixel information is stored at the big data non-relational database. According to other embodiments, the initial transformation is performed at the big data non-relational database and the visualization transformation is performed at the server. According to still other embodiments, the initial transformation and visualization transformation are performed at the server. Note that the pixel information might be associated with at least one of: (i) a heat map display, (ii) a scatter plot display, (iii) an X-Y axis graph, (iv) a pie chart, and/or (v) a bar graph display. According to some embodiments, visualization transformation is based on at least one of: (i) a user preference, and/or (ii) a context-based determination.
Similarly,
In some cases, a user might interact with a display at a client platform. For example, a user might select a portion of a display (e.g., when he or she is interested in viewing the big data values that resulted in that portion of the display). In the example of
Thus, embodiments may provide methods, tools, and/or systems to support highly interactive visualizations of large volumes of datasets. Embodiments may provide innovative interactions and effective technological solutions for visualizing large volumes of datasets across multiple assets and/or businesses (e.g., to explore the life of fleets of assets). Embodiment may use innovative interactive visualization techniques to enable users to investigate thousands of assets (e.g., airplane engines) over their life—which may include tens of thousands of cycles. The interactive tools described herein may give users the ability to quickly ask complex questions about asset dynamics.
Some embodiments described herein may help resolve big data rendering on the screen for the purpose of visual analytics. As opposed to desktop software, some embodiments described herein may use transformations of data values into a dynamic number of buckets on a server/database to be represented by pixels on a client platform. Depending on the size of the underlying dataset and number of available buckets, an individual bucket might be associated with one or more data values. By using multiple transfer functions, embodiments may support different ways to quickly understand different aspects of the underlying data.
Furthermore, through transformation and inverse transformation functions, embodiments may provide the user the means to interactively explore the underlying large data sets. Note that the number of buckets and/or bucket transformation functions can be controlled dynamically based on various factors, for example number of pixels available on screen or the processing capability of hardware. Such an approach (e.g., chunking the data) breaks the overall visualization view on the client side into multiple buckets of information where each bucket stands for a sub-set of data. According to some embodiments, all of these buckets can be calculated and rendered, independent of one another and in parallel. Moreover, some embodiments may provide the flexibility of pushing the bucketing calculations to different parts of the system architecture.
According to some embodiments, a data transformation function is selected to map underlying data into buckets. The system might use, for example, transformation functions like sampling, median, maximum, minimum, and mean. An inverse transformation function may map buckets back into raw data. Note that a bucket transformation function may be selected to map buckets into pixels to generate visualization on the user screen. For example, a visualization transformation functions might convert buckets into line-graphs, scatter-plots, heat maps, etc. Similarly, an inverse transformation function may be selected to map screen pixels back into a bucket. In either case, the number of buckets can be dynamically selected based on: the number of available pixels for the visualization; the processing capability of the hardware; or a user selection.
Some embodiments may support the flexibility of pushing these transformation and inverse-transformation calculations to different parts of the client-server architecture. In one implementation, the data-to-bucket and bucket-to-pixels transformations can be achieved pre-hand and stored in database. In another implementation, the data-to-bucket transformation can be achieved pre-hand and stored in database while the bucket-to-pixel transformation is achieved at the server. In still another implementation, both the data-to-bucket transformation and bucket-to-pixels transformation are achieved at the server. In some implementations, the data-to-bucket transformation is at the server and the bucket-to-pixels transformation is achieved at the client platform. In another implementation, the data-to-bucket and bucket-to-pixels transformations are performed at the client platform. Once the pixels data is available at the client platform, visualization can be rendered as a simple image using the pixel data.
To support seamless user interactions with the visualization, inverse transformations may pull necessary data required by a particular interaction. Furthermore, depending on the selection of transformation function, embodiments may support the flexibility to calculate and render buckets in parallel and asynchronously—thus improving the overall efficiency of the application for large volumes of datasets. Embodiments might be used, for example, to visualize hundreds of time-series, where each series has tens of thousands of data points. Embodiments may let a person essentially visualize multi-million data-points inside a web-browser while still supporting seamless user interactivity. Furthermore, by combining slicing and dicing of big data with bucketing and parallel processing, embodiments may reduce an initial lag time associated with rendering large volumes of datasets.
The embodiments described herein may be implemented using any number of different hardware configurations. For example,
The processor 910 also communicates with a storage device 930. The storage device 930 may comprise any appropriate information storage device, including combinations of magnetic storage devices (e.g., a hard disk drive), optical storage devices, mobile telephones, and/or semiconductor memory devices. The storage device 930 stores a program 912 and/or a transformation engine 914 for controlling the processor 910. The processor 910 performs instructions of the programs 912, 914, and thereby operates in accordance with any of the embodiments described herein. For example, the processor 910 might access a substantial number of electronic files, including a set of values for a first parameter. A visualization server may receive information from a big data non-relational database, and an initial transformation may be applied to the set of values for the first parameter resulting in a set of bucket containers, each bucket container storing information consolidating a plurality of values for the first parameter. A visualization transformation may then be applied to the bucket containers to create a set of pixel information to be transmitted to and rendered by a client platform.
The programs 912, 914 may be stored in a compressed, uncompiled and/or encrypted format. The programs 912, 914 may furthermore include other program elements, such as an operating system, a database management system, and/or device drivers used by the processor 910 to interface with peripheral devices.
As used herein, information may be “received” by or “transmitted” to, for example: (i) the apparatus 900 from another device; or (ii) a software application or module within the apparatus 900 from another software application, module, or any other source.
As shown in
The parameter identifier 1002 might be a unique alphanumeric code identifying 1002 a type of a parameter and a time associated with a value of the parameter. The bucket identifier 1004 may, in accordance with an initial transformation, associated a number of different parameter identifiers with a single bucket container. For example, the first five rows of the database 1000 are all associated with the bucket container “B_101.” The pixel location 1006 and pixel characteristic 1008 may associate multiple bucket containers with a single pixel. For example, as illustrated
Thus, some embodiments described herein may facilitate a visualization of big data in such a way so as to improve a person's ability to interpret the big data efficiently and/or accurately.
The following illustrates various additional embodiments of the invention. These do not constitute a definition of all possible embodiments, and those skilled in the art will understand that the present invention is applicable to many other embodiments. Further, although the following embodiments are briefly described for clarity, those skilled in the art will understand how to make any changes, if necessary, to the above-described apparatus and methods to accommodate these and other embodiments and applications.
Although specific hardware and data configurations have been described herein, note that any number of other configurations may be provided in accordance with embodiments of the present invention (e.g., some of the information associated with the databases and apparatus described herein may be split, combined, and/or handled by external systems).
Applicants have discovered that embodiments described herein may be particularly useful in connection with industrial asset management systems, although embodiments may be used in connection other any other type of asset.
While only certain features of the invention have been illustrated and described herein, many modifications and changes will occur to those skilled in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the true spirit of the invention.