15 karma · joined July 1, 2016
For example, how do you detect when a source's semantics change? This will break any cleansing or transforms done in the stream platform. Until it gets fixed, data may be missing, wrong, or worse (e.g. corrupted) and propagated down stream.
When data is cleansed and transformed early, there is no way to go back to the raw data, unless you carry it forwards too.
Consider these sort of questions for your use case.
Also, if you want to support all 256 values in a byte for each byte of the string to be entered into the trie, the whole idea of using a list structure seems inefficient. On average, to find the next byte in the trie would require 128 comparison operations.
> ln -s ../fluffy.jpg "fluffy [+cat].jpg"
> ln -s "fluffy [+cat].jpg" "fluffy [+yarn].jpg"
> ln -s "fluffy [+cat].jpg" "fluffy [-yarn].jpg"
> ln -s ../fluffy.jpg "fluffy [cat].jpg"
Tags could be added by linking to the latest one:
> ln -s "fluffy [cat].jpg" "fluffy [cat] [yarn].jpg"
This would allow TagSpaces to have temporal knowledge as to when tags were added or removed.
If the links are cascaded as I have shown, then when the original file is moved, TagSpaces will only need to rebuild the first link. The rest will still work.
The issue of the tags causing the name to be too long can be addressed by a different tag naming strategy.
> ln -s ../fluffy.jpg "fluffy [+cat].jpg"
> ln -s "fluffy [+cat].jpg" "fluffy [+yarn].jpg"
> ln -s "fluffy [+yarn].jpg" "fluffy [-yarn].jpg"
This would require TagSpaces to have some simple logic to determine which tags were relevant at a particular point in time.
- The project 'data engineer', in today's world, most likely will be a software developer responsible for ETL, etc. The data design will be more or less up to the software developer.
- An enterprise 'data engineer' is more concerned with data that affects the enterprise. This typically involves some sort of data integration. For example, how to integrate relevant data from N projects (e.g. A,B,C .. Z) where each project has its own idea of how to represent similar concepts (e.g. person, user, customer), with different provenance, truth assertions, access rules, data retention periods, granularity of metadata (e.g. at the attribute level vs entity level), etc. The enterprise is interested in questions like 'What did we know and when did we know it?", etc. The enterprise 'data engineer' will probably levy requirements on the project 'data engineer' to meet the enterprise's needs.