Advertisement
Guest User

Hive ppd tests

a guest
Jun 6th, 2012
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.17 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. # to be pasted into shell running in terminal (doesn't seem to work when executed as script :-/ )
  4.  
  5. echo >/tmp/cmd '
  6. -- create a partitioned table
  7. DROP TABLE IF EXISTS ppd_test;
  8. CREATE TABLE ppd_test (col1 array<int>, col2 int)
  9.  PARTITIONED BY (part_col bigint);
  10.  
  11. -- fill partitions with some random data
  12. INSERT OVERWRITE TABLE ppd_test PARTITION (part_col=1) SELECT array(1,2), count(*) FROM ppd_test;
  13. INSERT OVERWRITE TABLE ppd_test PARTITION (part_col=2) SELECT array(2,4,6), count(*) FROM ppd_test;
  14. '
  15. hive < /tmp/cmd &> /tmp/log
  16.  
  17. echo >/tmp/cmd '
  18. set hive.optimize.ppd=true;
  19. -- multi-group-by query on one partitions with ppd optimization
  20. EXPLAIN EXTENDED
  21. FROM ppd_test
  22. LATERAL VIEW explode(col1) tmp AS exp_col1
  23. INSERT OVERWRITE DIRECTORY '"'/test/1'"'
  24.    SELECT exp_col1
  25.    WHERE (part_col=2)
  26. INSERT OVERWRITE DIRECTORY '"'/test/2'"'
  27.    SELECT exp_col1
  28.    WHERE (part_col=2)
  29. ;'
  30. hive < /tmp/cmd &> /tmp/part_ppd.txt
  31.  
  32. echo >/tmp/cmd '
  33. set hive.optimize.ppd=false;
  34. -- multi-group-by query on one partitions without ppd optimization
  35. EXPLAIN EXTENDED
  36. FROM ppd_test
  37. LATERAL VIEW explode(col1) tmp AS exp_col1
  38. INSERT OVERWRITE DIRECTORY '"'/test/1'"'
  39.    SELECT exp_col1
  40.    WHERE (part_col=2)
  41. INSERT OVERWRITE DIRECTORY '"'/test/2'"'
  42.    SELECT exp_col1
  43.    WHERE (part_col=2)
  44. ;'
  45. hive < /tmp/cmd &> /tmp/part_noppd.txt
  46.  
  47. echo >/tmp/cmd '
  48. -- create a non-partitioned table
  49. DROP TABLE IF EXISTS ppd_test;
  50. CREATE TABLE ppd_test (col1 array<int>, col2 int);
  51.  
  52. -- fill partitions with some random data
  53. INSERT OVERWRITE TABLE ppd_test SELECT array(1,2), count(*) FROM ppd_test;
  54. '
  55. hive < /tmp/cmd &>> /tmp/log
  56.  
  57. echo >/tmp/cmd '
  58. set hive.optimize.ppd=true;
  59. -- multi-group-by query on regular column with ppd optimization
  60. EXPLAIN EXTENDED
  61. FROM ppd_test
  62. LATERAL VIEW explode(col1) tmp AS exp_col1
  63. INSERT OVERWRITE DIRECTORY '"'/test/1'"'
  64.    SELECT exp_col1
  65.    WHERE (col2=1)
  66. INSERT OVERWRITE DIRECTORY '"'/test/2'"'
  67.    SELECT exp_col1
  68.    WHERE (col2=1)
  69. ;'
  70. hive < /tmp/cmd &> /tmp/nopart_ppd.txt
  71.  
  72. echo >/tmp/cmd '
  73. set hive.optimize.ppd=false;
  74. -- multi-group-by query on regular column without ppd optimization
  75. EXPLAIN EXTENDED
  76. FROM ppd_test
  77. LATERAL VIEW explode(col1) tmp AS exp_col1
  78. INSERT OVERWRITE DIRECTORY '"'/test/1'"'
  79.    SELECT exp_col1
  80.    WHERE (col2=1)
  81. INSERT OVERWRITE DIRECTORY '"'/test/2'"'
  82.    SELECT exp_col1
  83.    WHERE (col2=1)
  84. ;'
  85. hive < /tmp/cmd &> /tmp/nopart_noppd.txt
  86.  
  87.  
  88. echo >/tmp/cmd '
  89. set hive.optimize.ppd=true;
  90. -- multi-group-by query on regular column with ppd optimization and without lateral view
  91. EXPLAIN EXTENDED
  92. FROM ppd_test
  93. INSERT OVERWRITE DIRECTORY '"'/test/1'"'
  94.    SELECT col1
  95.    WHERE (col2=1)
  96. INSERT OVERWRITE DIRECTORY '"'/test/2'"'
  97.    SELECT col1
  98.    WHERE (col2=1)
  99. ;'
  100. hive < /tmp/cmd &> /tmp/nopart_ppd_nolv.txt
  101.  
  102. echo >/tmp/cmd '
  103. set hive.optimize.ppd=false;
  104. -- multi-group-by query on regular column without ppd optimization and without lateral view
  105. EXPLAIN EXTENDED
  106. FROM ppd_test
  107. INSERT OVERWRITE DIRECTORY '"'/test/1'"'
  108.    SELECT col1
  109.    WHERE (col2=1)
  110. INSERT OVERWRITE DIRECTORY '"'/test/2'"'
  111.    SELECT col1
  112.    WHERE (col2=1)
  113. ;'
  114. hive < /tmp/cmd &> /tmp/nopart_noppd_nolv.txt
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement