About the Authors |
|
xiii | |
About the Technical Reviewers |
|
xv | |
|
|
1 | (14) |
|
1.1 Big Data Lake and Its Representation |
|
|
2 | (1) |
|
1.2 Modern Applications and Big Data |
|
|
3 | (1) |
|
1.2.1 Fraud Detection in Banking |
|
|
3 | (1) |
|
|
3 | (1) |
|
1.2.3 Recommendation Engines |
|
|
4 | (1) |
|
|
4 | (1) |
|
1.4 An Overview of Hadoop and MapReduce |
|
|
5 | (1) |
|
|
5 | (7) |
|
|
6 | (1) |
|
|
7 | (2) |
|
|
9 | (1) |
|
|
10 | (1) |
|
|
11 | (1) |
|
|
11 | (1) |
|
|
11 | (1) |
|
|
11 | (1) |
|
1.6 Phoenix in the Hadoop Ecosystem |
|
|
12 | (1) |
|
1.7 Phoenix's Place in Big Data Systems |
|
|
12 | (1) |
|
1.8 Importance of Traditional SQL-Based Tools and the Role of Phoenix |
|
|
12 | (2) |
|
1.8.1 Traditional DBA Problems for Big Data Systems- |
|
|
13 | (1) |
|
1.8.2 Which Tool Should I Use for Big Data? |
|
|
13 | (1) |
|
1.8.3 Massive Data Storage and Challenges |
|
|
13 | (1) |
|
1.8.4 A Traditional Data Warehouse and Querying |
|
|
13 | (1) |
|
1.9 Apache Phoenix in Big Data Analytics |
|
|
14 | (1) |
|
|
14 | (1) |
|
|
15 | (22) |
|
2.1 What is Apache Phoenix? |
|
|
15 | (1) |
|
|
16 | (2) |
|
2.2.1 Installing Apache Phoenix |
|
|
17 | (1) |
|
|
17 | (1) |
|
|
18 | (1) |
|
2.4 Installing Apache Phoenix |
|
|
19 | (1) |
|
2.5 Installing Phoenix on Hortonworks HDP |
|
|
20 | (10) |
|
2.5.1 Downloading Hortonworks Sandbox |
|
|
21 | (6) |
|
|
27 | (1) |
|
2.5.3 Testing Your Phoenix Installation |
|
|
28 | (2) |
|
2.6 Installing Phoenix on Cloudera Hadoop |
|
|
30 | (1) |
|
|
31 | (1) |
|
2.8 Hadoop Ecosystem and the Role of Phoenix |
|
|
32 | (1) |
|
2.9 Brief Description of Phoenix's Key Features |
|
|
33 | (2) |
|
|
33 | (1) |
|
2.9.2 User-Defined Functions |
|
|
33 | (1) |
|
|
34 | (1) |
|
|
34 | (1) |
|
|
34 | (1) |
|
|
34 | (1) |
|
|
35 | (1) |
|
|
35 | (2) |
|
Chapter 3 CRUD with Phoenix |
|
|
37 | (14) |
|
3.1 Data Types in Phoenix |
|
|
37 | (1) |
|
3.1.1 Primitive Data Types |
|
|
37 | (1) |
|
|
37 | (1) |
|
|
38 | (1) |
|
3.2.1 Steps in data modeling |
|
|
39 | (1) |
|
|
39 | (1) |
|
|
39 | (1) |
|
|
39 | (4) |
|
|
40 | (1) |
|
|
41 | (1) |
|
|
41 | (1) |
|
|
41 | (1) |
|
|
42 | (1) |
|
|
42 | (1) |
|
|
42 | (1) |
|
|
43 | (1) |
|
3.6 Working with Phoenix API |
|
|
43 | (6) |
|
|
43 | (6) |
|
|
49 | (2) |
|
|
51 | (12) |
|
|
51 | (1) |
|
|
51 | (1) |
|
|
52 | (1) |
|
|
53 | (2) |
|
|
55 | (1) |
|
|
55 | (2) |
|
|
56 | (1) |
|
4.5.2 Deleting or Replacing Columns |
|
|
56 | (1) |
|
|
57 | (1) |
|
|
57 | (3) |
|
|
57 | (1) |
|
|
58 | (1) |
|
|
58 | (1) |
|
|
59 | (1) |
|
|
59 | (1) |
|
|
60 | (1) |
|
|
60 | (1) |
|
|
60 | (1) |
|
|
60 | (1) |
|
|
61 | (1) |
|
|
61 | (1) |
|
|
61 | (2) |
|
Chapter 5 Advanced Querying |
|
|
63 | (16) |
|
|
63 | (1) |
|
|
63 | (1) |
|
|
64 | (3) |
|
|
64 | (1) |
|
|
65 | (1) |
|
|
66 | (1) |
|
|
67 | (1) |
|
|
68 | (1) |
|
|
69 | (1) |
|
5.7 Join Query Optimizations |
|
|
69 | (2) |
|
5.7.1 Optimizing Through Configuration Properties |
|
|
70 | (1) |
|
|
70 | (1) |
|
|
71 | (3) |
|
5.8.1 IN and NOT IN in Subqueries |
|
|
72 | (1) |
|
5.8.2 EXISTS and NOT EXISTS Clauses |
|
|
72 | (1) |
|
5.8.3 ANY, SOME, and ALL Operators with Subqueries |
|
|
73 | (1) |
|
5.8.4 UPSERT Using Subqueries |
|
|
73 | (1) |
|
|
74 | (1) |
|
|
74 | (1) |
|
|
75 | (1) |
|
|
75 | (2) |
|
|
76 | (1) |
|
5.10.2 Row Value Constructor |
|
|
76 | (1) |
|
|
77 | (2) |
|
|
79 | (12) |
|
|
79 | (1) |
|
6.2 Transaction Properties |
|
|
79 | (1) |
|
|
80 | (1) |
|
|
80 | (1) |
|
|
80 | (1) |
|
|
80 | (1) |
|
|
80 | (1) |
|
|
80 | (1) |
|
|
80 | (1) |
|
|
81 | (1) |
|
|
81 | (1) |
|
6.4 Transactions in HBase |
|
|
81 | (4) |
|
6.4.1 Integrating HBase with Transaction Manager |
|
|
81 | (1) |
|
6.4.2 Components of Transaction Manager |
|
|
82 | (2) |
|
6.4.3 Transaction Lifecycle |
|
|
84 | (1) |
|
6.4.4 Concurrency Control |
|
|
84 | (1) |
|
6.4.5 Multiversion Concurrency Control |
|
|
85 | (1) |
|
6.4.6 Optimistic Concurrency Control |
|
|
85 | (1) |
|
6.5 Apache Tephra As a Transaction Manager |
|
|
85 | (1) |
|
|
86 | (4) |
|
6.6.1 Enabling Transactions for Tables |
|
|
89 | (1) |
|
6.6.2 Committing Transactions |
|
|
89 | (1) |
|
6.7 Transaction Limitations in Phoenix |
|
|
90 | (1) |
|
|
90 | (1) |
|
Chapter 7 Advanced Phoenix Concepts |
|
|
91 | (20) |
|
|
91 | (11) |
|
|
92 | (4) |
|
|
96 | (3) |
|
|
99 | (1) |
|
|
100 | (1) |
|
|
100 | (2) |
|
7.2 User Defined Functions |
|
|
102 | (4) |
|
7.2.1 Writing Custom User Defined Functions |
|
|
102 | (4) |
|
|
106 | (3) |
|
|
107 | (1) |
|
|
107 | (1) |
|
|
107 | (1) |
|
|
107 | (1) |
|
|
107 | (1) |
|
|
108 | (1) |
|
7.3.7 Additional PQS Features |
|
|
109 | (1) |
|
|
109 | (2) |
|
Chapter 8 Integrating Phoenix with Other Frameworks |
|
|
111 | (12) |
|
|
111 | (1) |
|
8.2 MapReduce Integration |
|
|
111 | (4) |
|
|
112 | (3) |
|
8.3 Apache Spark Integration |
|
|
115 | (3) |
|
|
116 | (1) |
|
8.3.2 Reading and Writing Using Dataframe |
|
|
117 | (1) |
|
8.4 Apache Hive Integration |
|
|
118 | (2) |
|
|
118 | (1) |
|
|
119 | (1) |
|
8.5 Apache Pig Integration |
|
|
120 | (1) |
|
|
120 | (1) |
|
8.5.2 Accessing Data from Phoenix |
|
|
120 | (1) |
|
8.5.3 Storing Data to Phoenix |
|
|
120 | (1) |
|
8.6 Apache Flume Integration |
|
|
121 | (1) |
|
|
121 | (1) |
|
|
121 | (1) |
|
8.6.3 Running the Above Setup |
|
|
122 | (1) |
|
|
122 | (1) |
|
|
123 | (14) |
|
9.1 Phoenix Tracing Server |
|
|
123 | (4) |
|
|
123 | (1) |
|
|
124 | (1) |
|
|
124 | (1) |
|
|
124 | (3) |
|
|
127 | (2) |
|
|
127 | (1) |
|
|
128 | (1) |
|
|
129 | (1) |
|
|
129 | (6) |
|
9.4.1 Setup to Run the Test |
|
|
133 | (1) |
|
|
134 | (1) |
|
|
135 | (2) |
Index |
|
137 | |