Library Migration: a Retrospective Analysis and Tool

Total Page:16

File Type:pdf, Size:1020Kb

Library Migration: a Retrospective Analysis and Tool University of Calgary PRISM: University of Calgary's Digital Repository Graduate Studies The Vault: Electronic Theses and Dissertations 2019-03-18 Library Migration: A Retrospective Analysis and Tool Zaidi, Syed Sajjad Hussain Zaidi, S. S. H. (2019). Library Migration: A Retrospective Analysis and Tool (Unpublished master's thesis). University of Calgary, Calgary, AB. http://hdl.handle.net/1880/110093 master thesis University of Calgary graduate students retain copyright ownership and moral rights for their thesis. You may use this material in any way that is permitted by the Copyright Act or through licensing that has been assigned to the document. For uses that are not allowable under copyright legislation or licensing, you are required to seek permission. Downloaded from PRISM: https://prism.ucalgary.ca UNIVERSITY OF CALGARY Library Migration: A Retrospective Analysis and Tool by Syed Sajjad Hussain Zaidi A THESIS SUBMITTED TO THE FACULTY OF GRADUATE STUDIES IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER OF SCIENCE GRADUATE PROGRAM IN COMPUTER SCIENCE CALGARY, ALBERTA MARCH, 2019 © Syed Sajjad Hussain Zaidi 2019 Abstract Modern software engineering practices advocate the principle of reuse through third party software libraries. Software libraries offer application programming interfaces (APIs) for use by developers, thereby significantly reducing development cost and time. These libraries are however subject to deprecation, vulnerabilities, and instability. Furthermore, as the product matures, developers have to worry about upgrading and migrating to better alternatives in order to attract and retain clients. Refactoring a system to start using a new library can cause a domino effect resulting in serious damage to the software system. Little is currently known about library migration; the few existing studies are either too preliminary or too problematic to tell us much. We perform an empirical study of 114 open source Java-based software systems in which library migration had occurred. We find that library migration leads to significant compatibility issues and breakage of source code in practice: library migration broke 67% of the software projects in which it occurred, while 22% of the transitively dependent projects broke due to coupling of APIs with external dependencies. Developers do not effectively use available resources to notify their clients about such migrations, preferring to use internal GitHub threads in contrast to the release notes, and even then often failing to discuss or announce the fact that library migration is planned or has been performed. We also found that mitigating library migration requires substantial effort by developers: on average, transformations affected 9.3% of the total classes in the dependent system, while impacting 15% of the total lines of code. We propose a systematic recommendation tool to assist developers in migrating or upgrading to a new software library. Our prototype tool, named EDW (for External Dependency Watcher), can be utilized to estimate and predict impacts while mitigating migrations among third party libraries. We evaluate EDW by detecting the impacts of migration across three granularities in ten distinct open source projects: our tool has perfect precision for all three granularities; for recall, it obtained over 0.99 for class- and field-granularity while achieving ∼0.86 for method-granularity. We conduct a controlled experiment on EDW: human participants were able to perform the tasks in significantly less time and with better precision/recall using EDW as compared to JRipples. ii Acknowledgements I would like to thank my supervisor, Dr. Robert Walker, for giving me the opportunity to work with him. He taught me how to think critically while being pragmatic. Thanks, Rob, for pushing me towards better research when I hit a dead end and for having faith in me. I would also like to thank Dr. Günther Ruhe for his helpful comments and small talks; I was also able to learn a lot from him, while assisting him during his course. I would like to thank May Sayed for giving me useful tips when I started my program. I would like to thank Hao Men for helping me out in my research. I would also like to thank Hamza Sayed for his helpful feedback and comments on my research. Finally, I would like to acknowledge Jing Zhou’s work that guided me to start my research; I would like to meet him in person some day. iii Dedication I would like to dedicate this work to my Dad and Mom; without them I am nothing. I would also like to thank my Taya, Tai, and Chacho for having my back. iv Table of Contents Abstract ii Acknowledgements iii Dedication iv Table of Contents v List of Figures viii List of Tables x 1 Introduction 1 1.1 Background and Motivation . .3 1.2 Research Questions and Objectives . .7 1.3 Contributions . .7 1.4 Thesis Structure . .8 2 Motivation 9 2.1 Motivational Scenario . .9 2.2 Summary . 21 3 Related Work 22 3.1 Library Upgrading . 23 3.2 Tool Support for Library Migration . 26 3.3 Change Impact Analysis . 28 3.3.1 Incremental change . 30 3.4 Summary . 31 4 Data Collection and Analysis 32 4.1 Selection of Projects . 33 4.1.1 GitHub Crawler . 35 4.1.2 Code Analyzer . 36 4.1.3 Manual Selection . 37 4.2 Data Gathering . 38 4.2.1 Find it EZ . 38 v 4.2.2 JAPICC . 39 4.2.3 Code Compare . 39 4.3 Analysis and Results . 40 4.4 Summary . 53 5 Tool 58 5.1 Overview of EDW ................................... 60 5.2 Dependency Viewer Module . 62 5.2.1 External JAR submodule . 64 5.2.2 Affected classes submodule . 65 5.2.3 Imports submodule . 65 5.3 Editor Module . 65 5.4 Impact Analysis Viewer Module . 68 5.5 Graph Builder Module . 69 5.6 Metrics Builder Module . 69 5.7 Workflow . 71 5.8 Summary . 73 6 Simulation Study 74 6.1 Selection of Projects . 74 6.2 Procedure . 76 6.2.1 Ground truth . 76 6.2.2 Estimated impact set for EDW ........................ 77 6.2.3 Estimated impact set for JRipples ...................... 77 6.2.4 Comparing estimated impact set and ground truth . 78 6.3 Results . 79 6.3.1 RQ5: How well is EDW able to locate the initial impact set for library migration? . 79 6.3.2 RQ6: What factors impact how well EDW performs? . 83 6.4 Summary . 87 7 Human-Subjects Experiment 88 7.1 Hypotheses . 88 7.2 Subject System . 89 7.3 Tasks . 90 7.4 Participants . 90 7.5 Experimental Procedure . 91 7.6 Data Collection . 92 7.7 Results . 93 7.7.1 Quantitative . 93 7.7.2 Qualitative . 96 7.8 Limitations . 101 7.9 Summary . 101 vi 8 Discussion 103 8.1 Trends in Software Library Usage . 103 8.2 Code Breaking of Systems and Their Clients . 104 8.2.1 Categories of Libraries that Broke Clients . 105 8.3 Notification of Software Library Migration . 106 8.4 Evaluation of EDW .................................. 106 8.5 Threats to Validity . 107 8.5.1 Threats to validity of the library migration study . 107 8.5.2 Threats to validity for the evaluation of EDW ................ 108 8.6 Future Work . 109 8.6.1 Knowledge base for external libraries . 109 8.6.2 Improve effort estimation . 110 8.6.3 Improvements to EDW ............................ 110 8.7 Summary . 111 9 Conclusion 113 9.1 Future Work . 115 Bibliography 117 A Studied Systems 126 B Studied Library Migrations 131 C Systems that Broke Transitively Dependent Clients 140 D Systems Used for Evaluation 142 E Individual Project Results for Evaluation 144 F Experimental Materials 149 F.1 Task Descriptions and Instructions . 150 F.2 Pre-Study Questionnaire . 152 F.3 Post-Task Questionnaire . 154 F.4 Final Questionnaire . 155 G Detailed Experimental Results 157 vii List of Figures 1.1 Relationships between a studied project, a system that depends on that project, and the libraries depended upon by both. .2 2.1 Dependencies from classes in the developer’s system to Guava that he ultimately discovers. 15 2.2 Transitive dependencies, from utilityFunction1 in the developer’s system to Guava, that he ultimately discovers. 16 4.1 Approach for data collection and analysis. 34 4.2 Algorithm to detect elimination of external dependencies. 36 4.3 Project count versus reasons behind successful library migration without code breaking. 41 4.4 Project count versus reasons behind complete removal of dependency from a project. 45 4.5 Project count versus alternative library selection criterion. 48 4.6 Percentage of classes impacted versus Maven project (sorted in descending order). 54 4.7 Percentage of classes impacted versus Android project (sorted in descending order). 54 4.8 Percentage of classes impacted versus project from either platform (sorted in de- scending order). ..
Recommended publications
  • Podcasting-Based Mobile Learning in Blended Learning Courses 1 Introduction
    Conference ICL2009 September 23 -25, 2009 Villach, Austria Podcasting-based Mobile Learning in Blended Learning Courses Michael Zeiller University of Applied Sciences Burgenland, Austria Key words: podcasting, enhanced podcasts, screencasts, mobile learning, blended learning, distance learning Abstract: Blended learning scenarios benefit from educational content delivered to mobile devices supporting full mobility of students. Podcasting and the utilization of various types of podcasts are discussed as an efficient means of providing mobile students in a part-time degree programme with learning content. Crucial to the success of podcasting is the chosen course design that mixes face-to-face phases with distance learning phases based on the delivery of appropriate content embedded in podcasting episodes. The type and output format of those episodes has to be chosen accurately according to the applied usage scenario. 1 Introduction The educational landscape and especially Higher Education is characterized by a significant increase in the number of part-time (postgraduate) studies. New and elaborated didactic concepts have to be applied in part-time degree programmes to achieve the teaching aim and also meet the requirements of students. Blended learning concepts are often applied in part- time studies since they mix phases of attendance in the classroom and distance learning phases [1][2]. Blended learning introduces online or mobile media into a course programme while at the same time retains face-to-face contact and other traditional approaches to support students [2]. Different models of teaching and learning can be implemented based on various amounts of blends of face-to-face activities and online activities [1]. The most important aspects of blended learning scenarios are time (asynchronous vs.
    [Show full text]
  • Pega Customer Service Reference Guide Iii
    Pega Customer Service 7.1.4 Version REFERENCE GUIDE © Copyright 2015 Pegasystems Inc., Cambridge, MA All rights reserved. Trademarks For Pegasystems Inc. trademarks and registered trademarks, all rights reserved. Other brand or product names are trademarks of their respective holders. Consult the 718ThirdPartyLicense.pdf file on the installation media for information about the software delivered with the product. Notices This publication describes and/or represents products and services of Pegasystems Inc. It may contain trade secrets and proprietary information that are protected by various federal, state, and international laws, and distributed under licenses restricting their use, copying, modification, distribution, or transmittal in any form without prior written authorization of Pegasystems Inc. This publication is current as of the date of publication only. Changes to the publication may be made from time to time at the discretion of Pegasystems Inc. This publication remains the property of Pegasystems Inc. and must be returned to it upon request. This publication does not imply any commitment to offer or deliver the products or services described herein. This publication may include references to Pegasystems Inc. product features that have not been licensed by you or your company. If you have questions about whether a particular capability is included in your installation, please consult your Pegasystems Inc. services consultant. Although Pegasystems Inc. strives for accuracy in its publications, any publication may contain inaccuracies or typographical errors, as well as technical inaccuracies. Pegasystems Inc. may make improvements and/or changes to the publication at any time. Any references in this publication to non-Pegasystems websites are provided for convenience only and do not serve as an endorsement of these websites.
    [Show full text]
  • Zack Robinson-Android and Amazon Resume.Docx
    Contact Innovative, Insightful, Resilient Phone: 814-525-1519 A geek with a gift for gab Email: [email protected] 8 years in Software Development Strengths Summary of Expertise Mobile/TV App Development ▪ Rapidly creates custom features for Android and Amazon Software Engineering Principles applications using UI/UX requirements and mockups Object-Oriented Programming ▪ Particularly comfortable with video playback, location services, (Java) catalog management, authentication, payment processing, and Functional Programming (Kotlin) user management features Refactoring to Design Patterns ▪ Expert at writing clean, re-usable Java and Kotlin code using SOLID principles and software design patterns Data Structures and Algorithms ▪ Adept at reducing operational costs on projects by automating Test-Driven Development quality assurance tasks Technical Communication ▪ Knowledgeable on Android Architecture Components and test Requirements Analysis driven frameworks (MVVM, MVP, etc) Strategic Consulting ▪ Familiar with NFC (Near field communication) technology, Broadcast Receivers and Services, and 3G and Wi-Fi technology. ▪ Adept at storing JSON server responses as data models in device memory (shared preferences, external storage, SQL Lite DB, etc.) ▪ Maintains quality through rigorous code review and testing, and partnerships with QA teams. ▪ Excellent at communicating technical requirements to non-technical stakeholders. ▪ Comfortable working remotely or on-site Technical Skills and Knowledge Languages: Java, Kotlin, Bytecode, XML, SQL, JavaScript,
    [Show full text]
  • Poly Videoos Offer of Source for Open Source Software 3.6.0
    OFFER OF SOURCE FOR 3.6.0 | 2021 | 3725-85857-010A OPEN SOURCE SOFTWARE August Poly VideoOS Software Contents Offer of Source for Open Source Software .............................................................................. 1 Open Source Software ............................................................................................................. 2 Qualcomm Platform Licenses ............................................................................................................. 2 List of Open Source Software .................................................................................................. 2 Poly G7500, Poly Studio X50, and Poly Studio X30 .......................................................................... 2 Poly Microphone IP Adapter ............................................................................................................. 13 Poly IP Table Microphone and Poly IP Ceiling Microphone ............................................................. 18 Poly TC8 and Poly Control Application ............................................................................................. 21 Get Help ..................................................................................................................................... 22 Related Poly and Partner Resources ..................................................................................... 22 Privacy Policy ...........................................................................................................................
    [Show full text]
  • A Comprehensive Study of Bloated Dependencies in the Maven Ecosystem
    Noname manuscript No. (will be inserted by the editor) A Comprehensive Study of Bloated Dependencies in the Maven Ecosystem César Soto-Valero · Nicolas Harrand · Martin Monperrus · Benoit Baudry Received: date / Accepted: date Abstract Build automation tools and package managers have a profound influence on software development. They facilitate the reuse of third-party libraries, support a clear separation between the application’s code and its ex- ternal dependencies, and automate several software development tasks. How- ever, the wide adoption of these tools introduces new challenges related to dependency management. In this paper, we propose an original study of one such challenge: the emergence of bloated dependencies. Bloated dependencies are libraries that the build tool packages with the application’s compiled code but that are actually not necessary to build and run the application. This phenomenon artificially grows the size of the built binary and increases maintenance effort. We propose a tool, called DepClean, to analyze the presence of bloated dependencies in Maven artifacts. We ana- lyze 9; 639 Java artifacts hosted on Maven Central, which include a total of 723; 444 dependency relationships. Our key result is that 75:1% of the analyzed dependency relationships are bloated. In other words, it is feasible to reduce the number of dependencies of Maven artifacts up to 1=4 of its current count. We also perform a qualitative study with 30 notable open-source projects. Our results indicate that developers pay attention to their dependencies and are willing to remove bloated dependencies: 18/21 answered pull requests were accepted and merged by developers, removing 131 dependencies in total.
    [Show full text]
  • Gateway Licensing Information User Manual Version 19
    Gateway Licensing Information User Manual Version 19 December 2019 Contents Introduction ...................................................................................................................................... 5 Licensed Products, Restricted Use Licenses, and Prerequisite Products ........................................ 5 Primavera Gateway ................................................................................................................................ 5 Third Party Notices and/or Licenses ................................................................................................ 6 Bootstrap ................................................................................................................................................ 6 Commons Codec .................................................................................................................................... 6 Commons Compress .............................................................................................................................. 6 Commons IO ........................................................................................................................................... 7 Commons Net ......................................................................................................................................... 7 commons-vfs .......................................................................................................................................... 7 HttpComponents HttpClient ..................................................................................................................
    [Show full text]
  • Skalierbare Echtzeitverarbeitung Mit Spark Streaming: Realisierung Und Konzeption Eines Car Information Systems
    Bachelorarbeit Philipp Grulich Skalierbare Echtzeitverarbeitung mit Spark Streaming: Realisierung und Konzeption eines Car Information Systems Fakultät Technik und Informatik Faculty of Engineering and Computer Science Department Informatik Department of Computer Science Philipp Grulich Skalierbare Echtzeitverarbeitung mit Spark Streaming: Realisierung und Konzeption eines Car Information Systems Bachelorarbeit eingereicht im Rahmen Bachelorprüfung im Studiengang Angewandte Informatik am Department Informatik der Fakultät Technik und Informatik der Hochschule für Angewandte Wissenschaften Hamburg Betreuender Prüfer: Prof. Dr.-Ing. Olaf Zukunft Zweitgutachter: Prof. Dr. Stefan Sarstedt Abgegeben am 1.3.2016 Philipp Grulich Thema der Arbeit Skalierbare Echtzeitverarbeitung mit Spark Streaming: Realisierung und Konzeption eines Car Information Systems Stichworte Echtzeitverarbeitung, Spark, Spark Streaming, Car Information System, Event Processing, Skalierbarkeit, Fehlertoleranz Kurzzusammenfassung Stream Verarbeitung ist mittlerweile eines der relevantesten Bereiche im Rahmen der Big Data Analyse, da es die Verarbeitung einer Vielzahl an Events innerhalb einer kurzen Latenz erlaubt. Eines der momentan am häufigsten genutzten Stream Verarbeitungssysteme ist Spark Streaming. Dieses wird im Rahmen dieser Arbeit anhand der Konzeption und Realisie- rung eines Car Information Systems demonstriert und diskutiert, wobei viel Wert auf das Er- zeugen einer möglichst generischen Anwendungsarchitektur gelegt wird. Abschließend wird sowohl das CIS als
    [Show full text]
  • Unravel Data Systems Version 4.5
    UNRAVEL DATA SYSTEMS VERSION 4.5 Component name Component version name License names jQuery 1.8.2 MIT License Apache Tomcat 5.5.23 Apache License 2.0 Tachyon Project POM 0.8.2 Apache License 2.0 Apache Directory LDAP API Model 1.0.0-M20 Apache License 2.0 apache/incubator-heron 0.16.5.1 Apache License 2.0 Maven Plugin API 3.0.4 Apache License 2.0 ApacheDS Authentication Interceptor 2.0.0-M15 Apache License 2.0 Apache Directory LDAP API Extras ACI 1.0.0-M20 Apache License 2.0 Apache HttpComponents Core 4.3.3 Apache License 2.0 Spark Project Tags 2.0.0-preview Apache License 2.0 Curator Testing 3.3.0 Apache License 2.0 Apache HttpComponents Core 4.4.5 Apache License 2.0 Apache Commons Daemon 1.0.15 Apache License 2.0 classworlds 2.4 Apache License 2.0 abego TreeLayout Core 1.0.1 BSD 3-clause "New" or "Revised" License jackson-core 2.8.6 Apache License 2.0 Lucene Join 6.6.1 Apache License 2.0 Apache Commons CLI 1.3-cloudera-pre-r1439998 Apache License 2.0 hive-apache 0.5 Apache License 2.0 scala-parser-combinators 1.0.4 BSD 3-clause "New" or "Revised" License com.springsource.javax.xml.bind 2.1.7 Common Development and Distribution License 1.0 SnakeYAML 1.15 Apache License 2.0 JUnit 4.12 Common Public License 1.0 ApacheDS Protocol Kerberos 2.0.0-M12 Apache License 2.0 Apache Groovy 2.4.6 Apache License 2.0 JGraphT - Core 1.2.0 (GNU Lesser General Public License v2.1 or later AND Eclipse Public License 1.0) chill-java 0.5.0 Apache License 2.0 Apache Commons Logging 1.2 Apache License 2.0 OpenCensus 0.12.3 Apache License 2.0 ApacheDS Protocol
    [Show full text]
  • Angularjs Native Rich Clients with Eclipse RCP WEB APPS UNTIL NOW
    Die Grundlagen Philipp Burgmer theCodeCampus / Weigle Wilczek GmbH ABOUT ME Philipp Burgmer Software Engineer / Consultant / Trainer Focus: Frontend, Web Technologies WeigleWilczek GmbH [email protected] ABOUT US WeigleWilczek / W11k Software Design, Development & Maintenance Consulting, Trainings & Project Kickoff Web Applications with AngularJS Native Rich Clients with Eclipse RCP WEB APPS UNTIL NOW JSF UI on Server A lot HTTP Requests Just to Update UI Hard to Use JS Libs / Scatters UI Logic GWT UI in Java / XML Hard to Use JS Libs / Scatters UI Logic "Java World" Instead of "Web World" Flex Clean Separation of Front- and Backend Based on Flash, Adobe Discontinues Developement MXML and ActionScript Instead of HTML and JavaScript WEB APPS FROM NOW ON Frontend Runs Completely in the Browser Stateful UI, Stateless Server Server Delivers Static Resources Server Delivers Dynamic Data HTML, CSS and JavaScript as UI Toolkit WHAT IS ANGULARJS? HTML Enhanced for Web Apps angularjs.com Client / Browser JS Framework Rich Browser Applications Brings Core Frontend Concepts and Features to the Browser Extends HTML Instead of Abstracting or Wrapping It angularjs.org Current Versions: 1.2.23 and 1.3.0-beta.19 License: MIT CORE CONCEPTS Model View Controller Modules Pattern Dependency Injection Two Way Data-Binding Services Directives Filter Goals Separation of Concerns Make It Easier to Write Clean Code Make It Easier to Write Testable Code Offer Concepts and Be Open for Extensions DEMO Two Way Data-Binding [ JS Bin | localhost ] Add Logic with a Controller
    [Show full text]
  • Evil Pickles: Dos Attacks Based on Object-Graph Engineering∗
    Evil Pickles: DoS Attacks Based on Object-Graph Engineering∗ Jens Dietrich1, Kamil Jezek2, Shawn Rasheed3, Amjed Tahir4, and Alex Potanin5 1 School of Engineering and Advanced Technology, Massey University Palmerston North, New Zealand [email protected] 2 NTIS – New Technologies for the Information Society Faculty of Applied Sciences, University of West Bohemia Pilsen, Czech Republic [email protected] 3 School of Engineering and Advanced Technology, Massey University Palmerston North, New Zealand [email protected] 4 School of Engineering and Advanced Technology, Massey University Palmerston North, New Zealand [email protected] 5 School of Engineering and Computer Science Victoria University of Wellington, Wellington, New Zealand [email protected] Abstract In recent years, multiple vulnerabilities exploiting the serialisation APIs of various programming languages, including Java, have been discovered. These vulnerabilities can be used to devise in- jection attacks, exploiting the presence of dynamic programming language features like reflection or dynamic proxies. In this paper, we investigate a new type of serialisation-related vulnerabilit- ies for Java that exploit the topology of object graphs constructed from classes of the standard library in a way that deserialisation leads to resource exhaustion, facilitating denial of service attacks. We analyse three such vulnerabilities that can be exploited to exhaust stack memory, heap memory and CPU time. We discuss the language and library design features that enable these vulnerabilities, and investigate whether these vulnerabilities can be ported to C#, Java- Script and Ruby. We present two case studies that demonstrate how the vulnerabilities can be used in attacks on two widely used servers, Jenkins deployed on Tomcat and JBoss.
    [Show full text]
  • Executable Trigger-Action Comments
    Executable Trigger-Action Comments Pengyu Nie, Rishabh Rai, Junyi Jessy Li, Sarfraz Khurshid, Raymond J. Mooney, and Milos Gligoric The University of Texas at Austin {pynie@,rrai.squared@,jessy@austin.,khurshid@ece.,mooney@cs.,gligoric@}utexas.edu ABSTRACT Wave project: “Remove this when HtmlViewImpl implements getAt- Natural language elements, e.g., todo comments, are frequently tributes”, etc.). We consider those comments where the trigger is used to communicate among the developers and to describe tasks expressed based on the state of the code repositories and actions that need to be performed (actions) when specific conditions hold require modifications of source or binary code. We call these com- in the code repository (triggers). As projects evolve, development ments trigger-action comments. processes change, and development teams reorganize, these com- Although trigger-action comments are ubiquitous, they are, like ments, because of their informal nature, frequently become irrele- other types of comments, written in natural language. Thus, as vant or forgotten. projects evolve, development processes change, and development We present the first technique, dubbed TrigIt, to specify trigger- teams reorganize, these comments frequently become irrelevant or action todo comments as executable statements. Thus, actions are forgotten. As an example, consider the following comment from executed automatically when triggers evaluate to true. TrigIt spec- the Apache Gobblin project [13]: “Remove once we commit any ifications are written in the host language (e.g., Java) and are evalu- other classes”. This comment, followed by an empty class, was in- ated as part of the build process. The triggers are specified as query cluded in revision 38ce024 (Dec 10, 2015) in package-info.java file statements over abstract syntax trees and abstract representation to force the javadoc tool to generate documentation for an empty of build configuration scripts, and the actions are specified as code package.
    [Show full text]
  • Trifacta Data Preparation for Amazon Redshift and S3 Must Be Deployed Into an Existing Virtual Private Cloud (VPC)
    Install Guide for Data Preparation for Amazon Redshift and S3 Version: 7.1 Doc Build Date: 05/26/2020 Copyright © Trifacta Inc. 2020 - All Rights Reserved. CONFIDENTIAL These materials (the “Documentation”) are the confidential and proprietary information of Trifacta Inc. and may not be reproduced, modified, or distributed without the prior written permission of Trifacta Inc. EXCEPT AS OTHERWISE PROVIDED IN AN EXPRESS WRITTEN AGREEMENT, TRIFACTA INC. PROVIDES THIS DOCUMENTATION AS-IS AND WITHOUT WARRANTY AND TRIFACTA INC. DISCLAIMS ALL EXPRESS AND IMPLIED WARRANTIES TO THE EXTENT PERMITTED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE AND UNDER NO CIRCUMSTANCES WILL TRIFACTA INC. BE LIABLE FOR ANY AMOUNT GREATER THAN ONE HUNDRED DOLLARS ($100) BASED ON ANY USE OF THE DOCUMENTATION. For third-party license information, please select About Trifacta from the Help menu. 1. Quick Start . 4 1.1 Install from AWS Marketplace . 4 1.2 Upgrade for AWS Marketplace . 7 2. Configure . 8 2.1 Configure for AWS . 8 2.1.1 Configure for EC2 Role-Based Authentication . 14 2.1.2 Enable S3 Access . 16 2.1.2.1 Create Redshift Connections 28 3. Contact Support . 30 4. Legal 31 4.1 Third-Party License Information . 31 Page #3 Quick Start Install from AWS Marketplace Contents: Product Limitations Internet access Install Desktop Requirements Pre-requisites Install Steps - CloudFormation template SSH Access Troubleshooting SELinux Upgrade Documentation Related Topics This guide steps through the requirements and process for installing Trifacta® Data Preparation for Amazon Redshift and S3 through the AWS Marketplace.
    [Show full text]