Comments (4)
Sounds good, thanks @paayers ! I'm going to close this issue out for now. We can re-open if new information suggests there's an actual behavioural bug here.
from dsbulk.
Based on a quick analysis I believe this behaviour is consistent with the docs for 1.11.0 @paayers. The current docs indicate that -ttl sets the cell-level time-to-live value which is exactly what you see in your first example. I'll also note that the mapping process defined there (i.e. something of the form "ttl(colname)") is exactly what is used in the data file supplied to the first example. Finally I note that this flag is ignored if -query is supplied which (presumably) is why you aren't seeing cell-level values in your second example.
In the second example you're explicitly using "USING TIMESTAMP... AND TTL" in the CQL for that query. Apparently the CQL commands are setting row-level TTLs rather than a cell-specific value... which makes sense.
I'm unaware of any change in 1.11.0 which would make this happen but I'll double-check that and make sure I didn't miss anything there. That said, if the user is asking whether this behaviour has changed between an older version and the current one it would be useful to know what older version they observed the differing behaviour on.
from dsbulk.
I think I have a more detailed explanation for you @paayers which might help explain things to your customer.
In your first example above the customer includes explicitly specified writetime and TTL values for at least some vars via some of the fields in their CSV file. Let's take "version_key" as a simple example; note that the CSV snippet in the first example above (what I'm calling the "Failing" example) includes this string:
|version_key|writetime(version_key)|ttl(version_key)
These correspond to per-column writetime and TTL values as discussed in the dsbulk settings docs. After some digging it finally became clear to me that when dsbulk is presented with column-specific writetime or TTL values it actually modifies the CQL it's using to insert values. In these cases it creates a distinct INSERT statement for each column with the column-specific writetime and/or TTL values supplied via the usual "USING" keyword. For reference the relevant section of the code is here.
A quick look at git history suggests that this code came in with this commit and was first included as part of the 1.8.0 release. I'm not sure which older version the customer is comparing 1.11.0 to but if it's older than 1.8.0 then there likely is a change in behaviour from what they expect.
from dsbulk.
Perfect, thanks for the explanation on this, we should be able to modify the inserts accordingly to resolve this one
from dsbulk.
Related Issues (20)
- `maxRecords` flag does not apply to write operations
- DSBulk count doesn't work on tables with just partition keys
- dsbulk compat with vector type HOT 4
- Loading from AWS S3 large file gives "Required array length is too large" error HOT 2
- Cannot import multiple values in a map<T,T> column using CSV files
- Add support for loading/unloading vector type data HOT 1
- dsbulk doesn't support toUnixTimestamp? HOT 4
- Parsing trouble when a column is called "vector" HOT 6
- Parsing vector data from JSON fails for "floats" with too many digits (aka doubles) HOT 1
- Split when unloading into smaller files
- Escape character when unloading
- DSBulk unload fails to parse map[value] as provided in query HOT 2
- Windows version only works when dsbulk in in short folders
- DSBulk DELETE can not accept any ranges on the clustering column when used within -query
- Allow file input for dsbulk unload
- Test case in CSVConnectorTest.should_read_from_http_url fails
- dsbulk 1.11.0 fails in windows
- Vulnerabilities detected against dsbulk 1.11.0 HOT 1
- Vulnerabilities on DSBulk 1.11.0 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dsbulk.