1653200280
Moldova
Moldova is a lightweight template interpreter, used to generate random values that plug into the template, as defined by a series of custom tokens.
It understands the tokens as defined further down in the document.
Moldova comes both as a library you can import, as well as a binary executable that you can run, which will output results to STDOUT.
The intended use is via the binary executable.
Moldova was originally designed as input to a database load testing tool, called the Slammer. It's primary purpose was to generate INSERT and SELECT statements, which were then loaded into the Slammer. If you're looking for a good tool to test the throughput and latency of database operations at scale, checkout the Slammer.
And if you're interested in using them together, checkout the Moldovan Slammer, a quick helper repo to demonstrate using them together
To use the command, first install
go install github.com/StabbyCutyou/moldova/cmd/moldova
The command accepts 2 arguments:
moldova -t "INSERT INTO floof VALUES ('{guid}','{guid:ordinal:0}','{country}',{int:min:-2000|max:0},{int:min:100|max:1000},{float:min:-1000.0|max:-540.0},{int:min:1|max:40},'{now}','{now:ordinal:0}','{country:case:up}',NULL,-3)" -n 100
This would provide sample output like the following:
...
INSERT INTO floof VALUES ('791add99-43df-44c8-8251-6f7af7a014df','791add99-43df-44c8-8251-6f7af7a014df','MU',-1540,392,-624.529332,39,'2016-01-24 23:42:49','2016-01-24 23:42:49','UN',NULL,-3)
INSERT INTO floof VALUES ('0ab4cc33-6689-404f-a801-4fd431ca3f30','0ab4cc33-6689-404f-a801-4fd431ca3f30','PL',-1707,112,-550.333145,1,'2016-01-24 23:42:49','2016-01-24 23:42:49','SS',NULL,-3)
INSERT INTO floof VALUES ('a3f4151a-a304-4190-a3df-7fd97ce58588','a3f4151a-a304-4190-a3df-7fd97ce58588','CM',-1755,569,-961.122173,25,'2016-01-24 23:42:49','2016-01-24 23:42:49','NE',NULL,-3)
Tokens
Tokens are represented by special values placed inside of { } characters.
Each token follows this pattern:
{command:argument_name:value|argument_name:value|...|...}
Each token defines it's own set of arguments, which are outlined below. If you're provided multiple arguments, the key-value pairs of argument names to values are delimited by a | pipe character. These can be provided in any order, so long as they are valid arguments.
It is only necessary to provide a | when you have further arguments to provide. For example:
Moldova will replace any instance of {guid} with a GUID/UUID
If you provide the ordinal: option, for the current line of text being generated, you can have Moldova insert an existing value, rather than a new one. For example:
"{guid} - {guid:ordinal:0}"
In this example, both guids will be replaced with the same value. This is a way to back-reference existing generated values, for when you need something repeated.
Moldova will replace any instance of {now} with a string representation of Golangs time.Now() function, formatted per the provided date format. There are 2 built in formats, for convenience, that are compatible with many databases.
Additionally, you can provide your own format string.
{now} also supports the ordinal: option
Moldova will replace any instance of {time} with a string representation of a random time, between min and max in terms of Unix Epoch values. The defaults are between 0, and roughly Now (determined at runtime) There are 2 built in formats, for convenience, that are compatible with many databases.
Additionally, you can provide your own format string.
{time} also supports the ordinal: option
Moldova will replace any instance of {int} with a random int value, optionally between the range provided. The defaults, if not provided, are 0 to 100.
{int} also supports ordinal: option
Moldova will replace any instance of {float} with a random Float64, optionally between the range provided. The defaults, if not provided, are 0.0 to 100.0
{float} also supports ordinal: option
Moldova will replace any instance of {unicode} with a randomly generated set of unicode characters, of a length specified by :number. The default value is 2.
{unicode} also takes the :case argument, which is either 'up' or 'down', like so
{unicode:case:up} {unicode:case:down}
{unicode} also supports ordinal: option
Only a certain subset of unicode character ranges are supported by default, as defined in the moldova/data/unicode.go file.
Moldova will replace any instance of {ascii} with a randomly generated set of ASCII characters, of a length specified by :number. The default value is 2.
{ascii} also takes the :case argument, which is either 'up' or 'down', like so
{ascii:case:up} {ascii:case:down}
{ascii} also supports ordinal: option
Moldova will replace any instance of {firstname} with a randomly generated first name, from the list defined in data/names.go
{firstname} takes a :langage argument, which can be any of the supported language strings in data/names.go. If the chosen name does not have an entry for the selected language, the configured default will be used in it's place. For exmaple:
{firstname:language:romanian}
{firstname} also takes the :case argument, which is either 'up' or 'down', like so
{firstname:case:up} {firstname:case:down}
{firstname} also supports :ordinal option
Only a certain subset of unicode character ranges are supported by default, as defined in the moldova/data/unicode.go file.
Moldova will replace any instance of {firstname} with a randomly generated first name, from the list defined in data/names.go
{lastname} takes a :langage argument, which can be any of the supported language strings in data/names.go. If the chosen name does not have an entry for the selected language, the configured default will be used in it's place. For example:
{lastname:language:romanian}
{lastname} also takes the :case argument, which is either 'up' or 'down', like so
{lastname:case:up} {lastname:case:down}
{lastname} also supports :ordinal option
Only a certain subset of unicode character ranges are supported by default, as defined in the moldova/data/unicode.go file.
Moldova will replace any instance of {country} with an ISO 3166-1 alpha-2 country code.
{country} supports the same case: argument as {unicode}. The default value is "up"
{country} also supports the ordinal: argument.
Roadmap
I'll continue to add support for more random value categories. There are also hooks to support ascii-only string generation, but as of yet it is not implemented.
Add proper support for escaping control characters, so they are not interpreted as part of a token. These characters are {, }, :, and |.
Author: StabbyCutyou
Source Code: https://github.com/StabbyCutyou/moldova
License: Apache-2.0 license
1620466520
If you accumulate data on which you base your decision-making as an organization, you should probably think about your data architecture and possible best practices.
If you accumulate data on which you base your decision-making as an organization, you most probably need to think about your data architecture and consider possible best practices. Gaining a competitive edge, remaining customer-centric to the greatest extent possible, and streamlining processes to get on-the-button outcomes can all be traced back to an organization’s capacity to build a future-ready data architecture.
In what follows, we offer a short overview of the overarching capabilities of data architecture. These include user-centricity, elasticity, robustness, and the capacity to ensure the seamless flow of data at all times. Added to these are automation enablement, plus security and data governance considerations. These points from our checklist for what we perceive to be an anticipatory analytics ecosystem.
#big data #data science #big data analytics #data analysis #data architecture #data transformation #data platform #data strategy #cloud data platform #data acquisition
1620629020
The opportunities big data offers also come with very real challenges that many organizations are facing today. Often, it’s finding the most cost-effective, scalable way to store and process boundless volumes of data in multiple formats that come from a growing number of sources. Then organizations need the analytical capabilities and flexibility to turn this data into insights that can meet their specific business objectives.
This Refcard dives into how a data lake helps tackle these challenges at both ends — from its enhanced architecture that’s designed for efficient data ingestion, storage, and management to its advanced analytics functionality and performance flexibility. You’ll also explore key benefits and common use cases.
As technology continues to evolve with new data sources, such as IoT sensors and social media churning out large volumes of data, there has never been a better time to discuss the possibilities and challenges of managing such data for varying analytical insights. In this Refcard, we dig deep into how data lakes solve the problem of storing and processing enormous amounts of data. While doing so, we also explore the benefits of data lakes, their use cases, and how they differ from data warehouses (DWHs).
This is a preview of the Getting Started With Data Lakes Refcard. To read the entire Refcard, please download the PDF from the link above.
#big data #data analytics #data analysis #business analytics #data warehouse #data storage #data lake #data lake architecture #data lake governance #data lake management
1618039260
The COVID-19 pandemic disrupted supply chains and brought economies around the world to a standstill. In turn, businesses need access to accurate, timely data more than ever before. As a result, the demand for data analytics is skyrocketing as businesses try to navigate an uncertain future. However, the sudden surge in demand comes with its own set of challenges.
Here is how the COVID-19 pandemic is affecting the data industry and how enterprises can prepare for the data challenges to come in 2021 and beyond.
#big data #data #data analysis #data security #data integration #etl #data warehouse #data breach #elt
1597579680
CVDC 2020, the Computer Vision conference of the year, is scheduled for 13th and 14th of August to bring together the leading experts on Computer Vision from around the world. Organised by the Association of Data Scientists (ADaSCi), the premier global professional body of data science and machine learning professionals, it is a first-of-its-kind virtual conference on Computer Vision.
The second day of the conference started with quite an informative talk on the current pandemic situation. Speaking of talks, the second session “Application of Data Science Algorithms on 3D Imagery Data” was presented by Ramana M, who is the Principal Data Scientist in Analytics at Cyient Ltd.
Ramana talked about one of the most important assets of organisations, data and how the digital world is moving from using 2D data to 3D data for highly accurate information along with realistic user experiences.
The agenda of the talk included an introduction to 3D data, its applications and case studies, 3D data alignment, 3D data for object detection and two general case studies, which are-
This talk discussed the recent advances in 3D data processing, feature extraction methods, object type detection, object segmentation, and object measurements in different body cross-sections. It also covered the 3D imagery concepts, the various algorithms for faster data processing on the GPU environment, and the application of deep learning techniques for object detection and segmentation.
#developers corner #3d data #3d data alignment #applications of data science on 3d imagery data #computer vision #cvdc 2020 #deep learning techniques for 3d data #mesh data #point cloud data #uav data
1618457700
Data integration solutions typically advocate that one approach – either ETL or ELT – is better than the other. In reality, both ETL (extract, transform, load) and ELT (extract, load, transform) serve indispensable roles in the data integration space:
Because ETL and ELT present different strengths and weaknesses, many organizations are using a hybrid “ETLT” approach to get the best of both worlds. In this guide, we’ll help you understand the “why, what, and how” of ETLT, so you can determine if it’s right for your use-case.
#data science #data #data security #data integration #etl #data warehouse #data breach #elt #bid data