You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "benj (Jira)" <ji...@apache.org> on 2019/11/14 10:15:00 UTC
[jira] [Updated] (DRILL-7444) JSON blank result on SELECT when too
much byte in multiple files
[ https://issues.apache.org/jira/browse/DRILL-7444?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
benj updated DRILL-7444:
------------------------
Description:
2 files (a.json and b.json) and the concat of these 2 file (ab.json) produce different results on a simple _SELECT_.
Problem appears from a number of byte (~ 102 400 000 in my case)
{code:bash}
#!/bin/bash
# script gen.sh to reproduce the problem
for ((i=1;i<=$1;++i));
do
echo -n '{"At":"'
for j in {1..999};
do
echo -n 'aaaaabbbbb'
done
echo '"}'
done
{code}
{noformat}
== I ==
$ gen.sh 10000 > a.json
$ gen.sh 239 > b.json
$ wc -c *.json
100000000 a.json
2390000 b.json
102390000 total
$ bash drill-embedded
apache drill> SELECT * FROM dfs.tmp.`*.json` LIMIT 1;
+--------------------+
| At |
+--------------------+
| aaaaabbbbaaaaab... |
+--------------------+
=> All is fine here
== II ==
$ gen.sh 10000 > a.json
$ gen.sh 240 > b.json
$ wc -c *.json
100000000 a.json
2400000 b.json
102400000 total
$ bash drill-embedded
apache drill> SELECT * FROM dfs.tmp.`*.json` LIMIT 1;
+--------------------+
| At |
+--------------------+
| |
+--------------------+
=> In a surprising way field `At` is empty
== III ==
$ gen.sh 10240 > ab.json
$ wc -c *.json
102400000 ab.json
$ bash drill-embedded
apache drill> SELECT * FROM dfs.tmp.`c.json` LIMIT 1;
+--------------------+
| At |
+--------------------+
| aaaaabbbbaaaaab... |
+--------------------+
=> All is fine here although the number of lines is equal to case II
{noformat}
* This problem doesn't appears in Drill 1.16.
* The Version of the Drill 1.17 tested here is the latest at 2019-11-13
was:
2 files (a.json and b.json) and the concat of these 2 file (ab.json) produce different results on a simple _SELECT_.
Problem appears from a number of byte (~ 102 400 000 in my case)
{code:bash}
#!/bin/bash
# script gen.sh to reproduce the problem
for ((i=1;i<=$1;++i));
do
echo -n '{"At":"'
for j in {1..999};
do
echo -n 'aaaaabbbbb'
done
echo '"}'
done
{code}
{noformat}
== I ==
$ gen.sh 10000 > a.json
$ gen.sh 239 > b.json
$ wc -c *.json
100000000 a.json
2390000 b.json
102390000 total
apache drill> SELECT * FROM dfs.tmp.`*.json` LIMIT 1;
+--------------------+
| At |
+--------------------+
| aaaaabbbbaaaaab... |
+--------------------+
=> All is fine here
== II ==
$ gen.sh 10000 > a.json
$ gen.sh 240 > b.json
$ wc -c *.json
100000000 a.json
2400000 b.json
102400000 total
apache drill> SELECT * FROM dfs.tmp.`*.json` LIMIT 1;
+--------------------+
| At |
+--------------------+
| |
+--------------------+
=> In a surprising way field `At` is empty
== III ==
$ gen.sh 10240 > ab.json
$ wc -c *.json
102400000 ab.json
apache drill> SELECT * FROM dfs.tmp.`c.json` LIMIT 1;
+--------------------+
| At |
+--------------------+
| aaaaabbbbaaaaab... |
+--------------------+
=> All is fine here although the number of lines is equal to case II
{noformat}
* This problem doesn't appears in Drill 1.16.
* The Version of the Drill 1.17 tested here is the latest at 2019-11-13
> JSON blank result on SELECT when too much byte in multiple files
> -----------------------------------------------------------------
>
> Key: DRILL-7444
> URL: https://issues.apache.org/jira/browse/DRILL-7444
> Project: Apache Drill
> Issue Type: Bug
> Components: Storage - JSON
> Affects Versions: 1.17.0
> Reporter: benj
> Priority: Major
>
> 2 files (a.json and b.json) and the concat of these 2 file (ab.json) produce different results on a simple _SELECT_.
> Problem appears from a number of byte (~ 102 400 000 in my case)
> {code:bash}
> #!/bin/bash
> # script gen.sh to reproduce the problem
> for ((i=1;i<=$1;++i));
> do
> echo -n '{"At":"'
> for j in {1..999};
> do
> echo -n 'aaaaabbbbb'
> done
> echo '"}'
> done
> {code}
> {noformat}
> == I ==
> $ gen.sh 10000 > a.json
> $ gen.sh 239 > b.json
> $ wc -c *.json
> 100000000 a.json
> 2390000 b.json
> 102390000 total
> $ bash drill-embedded
> apache drill> SELECT * FROM dfs.tmp.`*.json` LIMIT 1;
> +--------------------+
> | At |
> +--------------------+
> | aaaaabbbbaaaaab... |
> +--------------------+
> => All is fine here
> == II ==
> $ gen.sh 10000 > a.json
> $ gen.sh 240 > b.json
> $ wc -c *.json
> 100000000 a.json
> 2400000 b.json
> 102400000 total
> $ bash drill-embedded
> apache drill> SELECT * FROM dfs.tmp.`*.json` LIMIT 1;
> +--------------------+
> | At |
> +--------------------+
> | |
> +--------------------+
> => In a surprising way field `At` is empty
> == III ==
> $ gen.sh 10240 > ab.json
> $ wc -c *.json
> 102400000 ab.json
> $ bash drill-embedded
> apache drill> SELECT * FROM dfs.tmp.`c.json` LIMIT 1;
> +--------------------+
> | At |
> +--------------------+
> | aaaaabbbbaaaaab... |
> +--------------------+
> => All is fine here although the number of lines is equal to case II
> {noformat}
> * This problem doesn't appears in Drill 1.16.
> * The Version of the Drill 1.17 tested here is the latest at 2019-11-13
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)