Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Pentaho Data Integration Quick Start Guide
Pentaho Data Integration Quick Start Guide

Pentaho Data Integration Quick Start Guide: Create ETL processes using Pentaho

eBook
$25.99
Paperback
$32.99
Subscription
Free Trial
Renews at $12.99p/m

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Table of content icon View table of contents Preview book icon Preview Book

Pentaho Data Integration Quick Start Guide

Chapter 1. Getting Familiar with Spoon

This chapter will show you how to work with Spoon by designing, debugging, and testing a transformation. In addition to exploring Spoon features, you will also learn the basics for handling errors when you are designing a transformation.

This chapter will cover the following topics:

  • Exploring the Spoon interface
  • Designing, previewing, and running transformations
  • Defining and using Kettle variables
  • Running transformations with the pan utility

Exploring the Spoon interface


In Chapter 1, Getting Started with PDI, you used Spoon to create your first transformation. In this chapter, you will learn more about the experience of working with Spoon. First, let's take a look at its interface. The following screenshot shows you the different areas, menus, and toolboxes present in Spoon:

Spoon interface

The following provides a brief description of every component shown in the preceding screenshot:

  • Main Menu: This menu includes general options, such as opening and saving files (namely, transformations and jobs), editing and searching features, configuration settings, and help options.

Note

Most of the options in the main menu contain shortcuts that you can memorize and use, if you prefer to do so.

 

  • Main Toolbar: This toolbar serves as an alternative way to create, open, and save files.
  • Transformation Toolbar: This toolbar contains options for running, previewing, and validating the open transformation.
  • Work Area: This is the area where you create your work.
  • Design and View Tabs: When you have a transformation open in the main area, theDesigntab shows a tree with all of the steps available to add to the transformation. If you click on top of theViewtab, you will see a tree with all of the elements added to the transformation so far (database connections, steps, hops, and more):

View tab in Spoon

  • Execution Results: As the name implies, in this window, you see the results of previewing or executing a transformation or a job. You already know the first tab, Logging, where the details of the current execution are displayed.

Now that you know the names and contents of the different components in Spoon, it will be easier to work on the next sections.

Designing, previewing, and running transformations


In this section, we will create a transformation that is a bit more interesting than the one you already built. In doing this, you will have a chance to learn about the process of designing transformations, while also previewing your work.

The task is as follows: you will be given a file with a list of cities in the USA, along with their zip codes and their state names. You will have to generate a file containing only the cities in the state of NY, sorted by zip code. We will split the task into the following steps:

  • Designing and previewing the transformation
  • Learning to deal with errors that may appear
  • Saving and running the transformation

Designing and previewing a transformation

Let's start by developing the first part of the transformation. We will read the file and filter the data. In this case, the solution is quite straightforward (this will not always be the case). There is a PDI step for each of the tasks to accomplish. The CSV file input step will serve for reading the file, and the Filter rows step will filter the rows. The instructions are as follows:

  1. First, create a transformation. You can do this from the main menu, from the main toolbar, or by pressing Ctrl + T.
  2. From the Input folder that contains steps, drag and drop a CSV file input step to the work area.
  3. Double-click on the step. A configuration window will show up.
  4. Click on the Browse... button to locate the file. For this exercise, we will use a file that comes with the PDI software. You will find it in the following path, under the installation folder: samples\transformations\files\Zipssortedbycitystate.csv.
  5. Click onGet Fields. The grid will be filled with the columns found in the file:

Configuring a CSV file input step

  1. Click on Preview, then click on OK. A window with sample data will appear, as shown in the following screenshot:

Sample data

 

 

  1. Click on Close to close the Examine preview data window, and then click on OK to close the configuration window.

Now that we have read the file, the data is available for further processing. The rows coming from the CSV file input step will flow towards the next step, which will be the filter:

  • From the Flow folder, drag and drop a Filter rows step. 
  • Click on the output connector in the CSV file input step to create a hop towards the Filter rows step.
  • You will be prompted for the kind of hop. Select Main output of step, shown as follows:

Selecting a kind of hop

  • Double-click on the Filter rows step to configure the filter.
  • Fill in the configuration window, as shown in the following screenshot, to indicate that we will only keep rows with states equal to NY:

Configuring a filter

  • Close the window. The following is what you should have so far:

Simple transformation

Now, we will preview the results to see if we get what we expected:

  1. Make sure that the Filter rows step is selected.

Note

When a step is selected, its border becomes wider, as shown in the previous screenshot.

  1. Press F10 to preview the results. Alternatively, click on the Preview icon (the icon that looks like an eye) in the transformation toolbar. Then, click on Quick Launch. A window with the filtered rows will appear, as follows:

Previewing data

Note

By default, only 1,000 rows are previewed. If you want to look at more data, just click on Get more rows.

  1. Click on Stop to stop the previewing process and close the window.

Note

As you can see in the preceding image, when you preview or run a transformation, a small window with metrics is displayed above the steps while the rows are being processed. These metrics are the same as those shown in the Steps metrics tab in the Execution Results window.

Understanding the logging options

PDI logs all of the executions of a transformation. By default, the level of the logging details is basic, but there are seven possible levels of logging, ranging from Nothing at all to Rowlevel (very detailed), which is the most detailed level of logging. You can change the level of logging as follows:

  • If you will run a transformation, in the Execute a transformation window, before clicking on Run, select the proper option:

Selecting the Log level

  • If you are previewing a transformation, instead of clicking on Quick Launch, select Configure. This will show you the Execute a transformation window. In this window, choose Log level, and then click on Run.

Understanding the Step Metrics tab

Before continuing, let's observe what is happening in the Execution Results window. You already know the Logging tab, which displays every task that you are performing. Now, click on the Step Metrics tab. You will see the following:

Step Metrics tab

In this tab, there is a grid with one row for each of the steps in the transformation. In this case, we have two of them: one for the CSV file input step, and one for the Filter rows step. The columns in the grid describe what happened in each step. The following are the most relevant columns in our example:

  • Read: The number of rows coming from the previous step
  • Written: The number of rows that leave the current step toward the next one
  • Input: The number of rows coming from external sources

For instance, the rows that the CSV file input step reads from the file travel toward the Filter rows step. In other words, the output of the CSV file input step, displayed under the Written column, is the input of the Filter rows step, displayed under the Read column. 

Also, if you look at the Filter rows line in the Steps Metrics grid, the number under the Written column represents the number of rows that will leave the step (that is, the rows remaining after filtering).

CSV file input is the only step that gets data from an external source – a file. Therefore, this is the only step that has a value greater than zero in the Input column.

The last columns in the grid – Time, Speed (r/s), and input/output – are metrics to monitor the performance of the execution. As to the rest of the columns in the grid, they will be described in later chapters.

Dealing with errors while designing

Now, we will continue working on the transformation created in the previous section. This time, we will sort the final data by ZIP code. This is a very simple task, but we will use it as a method to learn how to deal with errors that may appear while we are designing:

  1. From the Transform folder that contains steps, drag and drop a Sort rows step to the work area.
  2. Create a hop from the Filter rows step to this one. Again, you will be prompted for the kind of hop. Select the Main output of step option:

Kinds of hop leaving a Filter rows step

  1. Double-click on the Sort rows icon. Fill in the grid as follows:

Sorting data

 

  1. Close the window.
  2. Make sure that the Sort rows step is selected, and run a preview like you did before. If you followed the steps as explained, you will get an error.

There are several indications that will help you to understand that an error occurred:

  • A small red icon will appear in the upper-right corner of one or more steps. These are the steps that are causing the error.
  • The backgrounds of the corresponding rows in the Step Metrics tab will change to red:

Errors in the Step Metrics tab

  • The Logging tab will contain text explaining the error:

Errors in the Logging tab

 

In this case, as stated in the log, the problem was that we were referring to a field that doesn't exist. We typed ZIPCODE instead of POSTALCODE. Let's fix it, as follows:

  1. Double-click on the Sort rows step and fix the name of the field
  2. Close the window and run a preview again
  3. You will see the rows with states equal to NY, sorted by ZIP code

Saving and running a transformation

The last task before saving and running the transformation is to send the results to a file. This is quite easy:

  1. From the Output folder, drag and drop a Text file output step to the work area. Create a hop from the Sort rows step to this new step. Note that this time, you don't have to choose the kind of hop; a default kind of hop will be created.
  2. Double-click on the Text file output step. In the configuration window, provide a name for the file that we will generate. You should specify the full path, for instance, C:/Pentaho/data/ny_cities.

Note

You don't have to type the extension; it is automatically added, as indicated in the extension textbox.

  1. Close the window.

The transformation is complete. The only task to perform now is to save it and run it, as follows:

  1. Save the transformation. You can do so by pressing Ctrl + S or by selecting the proper option from Main Menu or Main Toolbar.

 

  1. Once the transformation has saved, you can run it. Do so by pressing F9. In the Logging tab of the Execution Results window, you will see the log of the execution. If you select the Preview data tab in the same window, you will see sample data coming from the step currently selected. As an example, click on the Filter rows step and look at the data in the Preview data tab. You will see all of the rows for the state of NY, although they are still out of order:

Preview data tab

  1. If you click on the Sort rows step, you will see the same, but ordered. Also, a file should have been created with the same information. Browse your system to look for the generated file. Its content should be something like the following: 
     CITY;STATE;POSTALCODE
      NEW YORK;NY;10001
      NEW YORK;NY;10003
      NEW YORK;NY;10005
      ...
      ...
      ELMIRA;NY;14925
      HOLTSVILLE;NY;501
      FISHERS ISLAND;NY;6390

Note

If you look at the sample lines, you will note that the code 501 is between 14925 and 6390. The codes are not sorted by number, but alphabetically. This is because the ZIP code was defined as a String in the input step.

Defining and using Kettle variables


In PDI, you can define and use variables, just as you do when you code in any computer language. We already defined a couple of variables when we created the kettle.properties file in Chapter 1, Getting Started with PDI. Now, we will see where and how to use them.

It's simple: any time you see a dollar sign by the side of a textbox, you can use a variable:

Sample textboxes that allow variables

You can reference a variable by enclosing its name in curly braces, preceded by a dollar sign (for example, ${INPUT_FOLDER}).

Note

A less used notation for a variable is as follows: %%<variable name>%% (for example, %%INPUT_FOLDER%%).

Let's go back to the transformation created in the previous section. Instead of a fixed value for the location of the output file, we will use variables. The following describes how to do it:

  1. Open the transformation (if you had closed it). You can do this from Main Menu or from Main Toolbar.
  2. Double-click on the Text file output step. Replace the full path for the location of the file with the following: ${OUTPUT_FOLDER}/${FILENAME}.

Note

Note that you can combine variables, and can also mix variable names with static text.

  1. Close the window and press F10 to run the transformation.
  1. In the window that appears, select the Variables tab. You will see the names of both variables – OUTPUT_FOLDER and FILENAME:

Variables in the Execute a Transformation window

The OUTPUT_FOLDER variable already has a value, which is taken from the kettle.properties file. The FILENAME variable doesn't have a value yet.

  1. To the right of the name, type the name that you want to give to the output file, as shown in the following screenshot:

Entering values for variables

  1. Click on Run
  2. Browse the filesystem to make sure that the file with the name provided was generated

Beside the user-defined variables – those created by you, either in the kettle.properties file or inside Spoon – PDI has a list of predefined variables that you can also use. The list mainly includes variables related to the environment (for example, ${os.name}, for the name of the operating system on which you are working, or ${Internal.Entry.Current.Directory}, which references the file directory where the current job or transformation is saved). To see the full list of variables, both predefined and user-defined, just position the cursor inside any textbox where a variable is allowed, and press Ctrl + Spacebar. A full list will be displayed.

 

  • If you click on any of the variables for a second, the actual value of the variable will be shown, as indicated in the following screenshot:

PDI variables

  • If you double-click on a variable name, the name will be transcribed into the textbox.

Using named parameters

In the last exercise, you used two variables: one created in the kettle.properties file, and the other created inside of Spoon at runtime. There are still more ways to define variables. One of them is to create a named parameter. Named parameters are variables that you define in a transformation, and they can have a default value. You only have to supply a value if it differs from the default. Let's look at how it works, as follows:

  1. Open the last transformation (if you had closed it).
  2. Double-click anywhere in the work area excepting over the steps or hops. This will open the Transformation properties window.
  1. Click on the Variables tab. This is where we define the named parameters.
  2. Fill in the grid as shown, replacing the path in the example with the real path where you have PDI installed:

Defining a named parameter

  1.  Close the window.
  2. Double-click on the CSV file input step. Replace the full path of the location of the file with the following: ${SAMPLES_DIR}/Zipssortedbycitystate.csv.
  3. Close the window and save the transformation.
  1. Click F9 to run the transformation. The Parameters tab in the Run Options window will show the named parameter that we just defined:

Running a transformation with a named parameter

  1. Click on Run. PDI will replace the value of the variable, exactly as it did before.

Note that this time, we didn't supply a value for the variable, as it already had a proper value. Now, suppose that we move the samples folder to a different location. The following describes how we can provide the new value:

  • Click F9 to run the transformation. 
  • In the Parameters tab, fill in the Valuecolumn with the proper value, as shown in the following screenshot:

Supplying a value for a named parameter

  • Click on Run. PDI will replace the value of the variable with the value that you provided, and will read the file from that location.

Running transformations with the Pan utility


So far, you have used Spoon to create and run transformations. However, if you want to run a transformation in a production environment, you won't use Spoon, but a command-line utility named Pan.

Let's quickly look at how to use this tool.

If you browse the PDI installation directory, you will see two versions of the utility: Pan.bat and Pan.sh. You will use the first if you have a Windows environment, and the second for other systems.

Note

In the next step-by-step tutorial, we will assume that you have Windows, but you should make the required adjustments if you have a different system.

 

The simplest way to run a transformation with Pan is to provide the full path of the transformation that you want to run. You can execute Pan in Windows as follows:

Pan.bat /file=<ktr file name>

For Unix, Linux, and other Unix-like systems, use the following command:

./Pan.sh /file=<ktr file name>

Let's suppose that you want to run the first transformation created in this chapter, which is located in the following directory:

c:/pdi_labs/my_first_transformation.ktr

In order to run it, follow these instructions:

  1. Open a Terminal window
  2.  Go to the directory where PDI is installed and type the following code:
       Pan /file=c:/pdi_labs/my_first_transformation.ktr

Note

You must include the full path for the transformation file. If the name contains spaces, surround it with double quotes.

After running the command, you will see the log of the execution, which is the same log that you see in the Execution Results window in Spoon. In order to change the log level, just add the following:

-level:<log level>

The possible values for the log level are Nothing, Minimal, Error, Basic, Detailed, Debug, and Rowlevel.

As an example, the following command will print not only the basic log, but also the details of every row that is being processed:

Pan - level:Rowlevel /file=c:/pdi_labs/my_first_transformation.ktr

 

 

The details of the rows are as follows:

 ...
 2018/06/10 12:33:43 - Sort rows.0 - Read row: [YONKERS], [NY], [10701]
 2018/06/10 12:33:43 - Sort rows.0 - Read row: [YONKERS], [NY], [10703]
 2018/06/10 12:33:43 - Sort rows.0 - Read row: [YONKERS], [NY], [10705]
 2018/06/10 12:33:43 - Sort rows.0 - Read row: [YORKVILLE], [NY], [13495]
 2018/06/10 12:33:43 - Sort rows.0 - Read row: [YULAN], [NY], [12792]
 2018/06/10 12:33:43 - Sort rows.0 - Signaling 'output done' to 0 output rowsets.
 2018/06/10 12:33:43 - Sort rows.0 - Finished processing (I=0, O=0, R=1146, W=1146, U=0, E=0)

In the last version of our transformation, we added a named parameter with the path where PDI had to look for the input file. In Spoon, you provided the value in the Execution window. When running the transformation with Pan, you do it by using the param option, as follows:

/param:<parameter name>=<parameter value>

In our example, supposing that the new value is c:/samples, we build the command-line parameter as follows:

/param:"NAME=c:/samples"

Note

If you want to know all of the possible options for the Pan command, run Pan.bat or Pan.sh without parameters, and all of the options will be displayed.

Summary


This chapter served to help you get used to Spoon, the PDI graphical designer. First, you learned how to work with the tool when you created, previewed, and ran transformations. When you worked with transformations, you had the opportunity to use Kettle variables, both predefined and user defined. You also learned how to deal with common errors. Finally, you experimented with the Pan utility, which is used for running transformations from the command line.

Now that you have seen an overview of the tool, you're ready to get into the details of extracting data. That will be the subject of Chapter 3, Extracting Data.

Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • Take away the pain of starting with a complex and powerful system
  • Simplify your data transformation and integration work
  • Explore, transform, and validate your data with Pentaho Data Integration

Description

Pentaho Data Integration(PDI) is an intuitive and graphical environment packed with drag and drop design and powerful Extract-Transform-Load (ETL) capabilities. Given its power and flexibility, initial attempts to use the Pentaho Data Integration tool can be difficult or confusing. This book is the ideal solution. This book reduces your learning curve with PDI. It provides the guidance needed to make you productive, covering the main features of Pentaho Data Integration. It demonstrates the interactive features of the graphical designer, and takes you through the main ETL capabilities that the tool offers. By the end of the book, you will be able to use PDI for extracting, transforming, and loading the types of data you encounter on a daily basis.

Who is this book for?

This book is for software developers, business intelligence analysts, and others involved or interested in developing ETL solutions, or more generally, doing any kind of data manipulation.

What you will learn

  • Design, preview and run transformations in Spoon
  • Run transformations using the Pan utility
  • Understand how to obtain data from different types of files
  • Connect to a database and explore it using the database explorer
  • Understand how to transform data in a variety of ways
  • Understand how to insert data into database tables
  • Design and run jobs for sequencing tasks and sending emails
  • Combine the execution of jobs and transformations

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Aug 30, 2018
Length: 178 pages
Edition : 1st
Language : English
ISBN-13 : 9781789342796
Vendor :
Pentaho
Category :
Languages :
Tools :

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Product Details

Publication date : Aug 30, 2018
Length: 178 pages
Edition : 1st
Language : English
ISBN-13 : 9781789342796
Vendor :
Pentaho
Category :
Languages :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$12.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 6,500+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$129.99 billed annually
Feature tick icon Unlimited access to Packt's library of 6,500+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts
$179.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 6,500+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total $ 142.97
Pentaho Data Integration Quick Start Guide
$32.99
Pentaho 8 Reporting for Java Developers
$54.99
Learning Pentaho Data Integration 8 CE
$54.99
Total $ 142.97 Stars icon
Banner background image

Table of Contents

6 Chapters
Getting Started with PDI Chevron down icon Chevron up icon
Getting Familiar with Spoon Chevron down icon Chevron up icon
Extracting Data Chevron down icon Chevron up icon
Transforming Data Chevron down icon Chevron up icon
Loading Data Chevron down icon Chevron up icon
Orchestrating Your Work Chevron down icon Chevron up icon

Customer reviews

Rating distribution
Full star icon Full star icon Full star icon Empty star icon Empty star icon 3
(1 Ratings)
5 star 0%
4 star 0%
3 star 100%
2 star 0%
1 star 0%
MetalPesto Jan 19, 2020
Full star icon Full star icon Full star icon Empty star icon Empty star icon 3
Das Buch bietet einen Praxis-orientierten Einstieg in die Nutzung von PDI. Nicht mehr und nicht weniger. Kann man alles in der offiziellen Dokumentation und über andere Quellen herausfinden, aber wenn man keine Praxiserfahrung mit PDI hat und sich etwas Zeit sparen möchte, ist man mit diesem Buch gut beraten. Eine umfassende Vorstellung aller Steps sucht man allerdings vergebens.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.