Yn nhw'n ffrubem i tro, fel y gallwn nov yn gyntaf dda i chi, ddim am bwysigaf yn unw i'ch cwp. A hynny'n glwp o'r ddweud am ddigonwyd, mwy'n gwaith ar y dŵr sgol a'u gweithio ar y stoi maen nhw diolch ar y dŵr. Mae gennyn nhw'n grannu dŵr cael? Mae gennyn nhw'n rŵn i ddwy i ddefnyddio'r bobl? Mae gennyn nhw'n grannu i rŵn! Mae gennyn nhw'n grannu i rŵn i dŵr, mae genny'n grannu! Llywةeth, mae'r gwrth oed rhaid i here. Mae'r gwrth oed i here? Yeah. It was actually wanting to champion and stand up for people that I knew, in my local area, and I also had a real drive to get into that place where all the decisions were made, and do something important, how about you? Yeah I did Northern Powerhouse, I spent 2 minutes... You are Northern Powerhouse?  Don't, no seriously, you could sit on the tele for a while, Dekkwch hwnnw. Dy sugais i ffyrwch add aer coloured. You can put your head down and think, let's see if I got something to contribute. He'll say one can to get involved or not. I'm surprised I actually thought, That I would get kicked out with this accent and no background and it was almost an exercise in failure. So far he and turned up in the house together, But it was amazing to see you convince Because we've been on the parliamentary assessment board I've never been to Cambridge, I've just went to somehow a hotel on the outskirts of Cambridge and spent a weekend away from the kids. It was brilliant and I managed to get to the big house, I would make a flat. It's great though to be fair because you do form teams of camaraderie, don't you? We're all the same, isn't it? Women to Win though, wasn't that a big part of our gym? That's where I first met. All of you probably. Women to Win is great. I see WO. I see WO, they are also a big part of our gym. I'm sort of the old timer here. I remember thinking when there were only 17 Conservative women MPs thinking, honestly Harriet, if you're not prepared to do it you really only have yourself to blame. I want to see in my lifetime, now we're up to what, 87 female Conservative MPs? I want to see 50-50 Parliament in my lifetime and that is the change I want to see. Are you the first woman to chair the Treasury Select Committee? No, I'm the second. Baroness Nicky Morgan did it. We're able to, for example, before I did politics I was in financial services, we're doing a really interesting inquiry at the moment on what we're calling sexism in the city. We still have to do that. That's the great thing about coming with loads of experience. Many of us have already had loads of experience before we came into Parliament. I'm not saying we're older but we have come with at least 10, 15, 20 years worth of experience in the city or working in lots and lots of other places which I think has helped all of us. You were in business, I was in business. I think almost all of us. What's the thing you've done with your business experience apart from? I have used it a lot. If I think about what I'm really proud of, in terms of what I've focused on and what I've delivered, it is definitely around the violence against women and girls. That's the key thing. I think a lot of us have worked on issues such as the menopause and I know that Mims has been brilliant on that but I really was the one to recognise that we needed to do more there. There was a whole series of reforms that I was involved in across the whole court system and I think, lastly, what we've seen is we've seen spiking now being recognised as a serious crime. That's the difference. We talk about issues that affect us. I've been spiked, we've been championing things that affected us and changed the law. You first spoke about menopause in the Chamber and actually our male colleagues, you're the first MP. Our male colleagues love that because it gives what they can talk about and do in constituency surgeries and locally the ability to jump on that on a national scale. I think, Harriet, you mentioned the change in women coming to Parliament, the difference it makes in being able to talk about those more difficult subjects and important subjects. It's such a huge fan of what Theo's done in terms of talking about birth trauma. As you're saying, using our personal experiences, I'm a new mum, I had a baby since I got elected. I never expected to be giving such a personal speech in Parliament talking about having a really difficult child birth. I'm now doing this national inquiry looking at how to improve maternal services across the UK. I've been working very closely with Cherylyn on her work on baby loss. I think us talking about our personal experiences, which is also the experience that all these children are having, is really important because nobody else is talking about it. I think that's a sum up and talk about that. It must take a lot of brave issues really. I think as a lot of people have seen that, actually birth since Tidd's in the Chamber during my speech. And also very close to my daughter who has watched this as well when she's older. But it's amazing to see what the new Health Secretary, Vicki, has already done. So she's just brought in in response to our campaign this new check-up with your GP at six to eight weeks. Now the mum's health will be checked for physical and mental health, not just the baby. To me, that's amazing. There's a bad bench to make that change. Just as a result of doing my campaign and talking about my own personal experiences. That's the importance of being here, right? Who else can bring that experience so much to life? Same as you. You've changed it all the way, haven't you? Well, yeah. I mean, so last year you said it can be quite cathartic. So once here we have the baby loss debate in Parliament and it is quite cathartical. Which is a TG. The first time I did that, well, yeah, the first time I did it.  I'm being very professional. I'll just have to relay my story and then it gets you in the throat and you can't stop it. And actually then you see how brilliant colleagues are across the house.  Actually everybody's really, really nice to you and things like that happen. But campaigning on something like baby loss is not only so important to people of the country, but today I was at the school gates and one of the mums came up to me and she put her hand on my arm and she said, pregnancy loss certificate, is that down to you? And I said, yes, she went and she just... Oh, no, I'm just so sure. And so that for me is full circle. It's something I wanted to achieve and then somebody right there in my community is just genuinely going to make such a difference to them and that's it. That's made it all work. Yeah, it really does. Obviously we talk a lot about all this sort of downsize and the abuse and all that kind of thing which... It happens. It does, it does happen. I've got to remember things like that and it's just it. The things that make it worthwhile, but I also think probably all of us would still say you definitely do this job, right? That's the greatest job in the world. It's the greatest job in the world. Not only being able, I mean you didn't expect this experience, but you experienced something that a lot of other people weren't before you were there and your voice was there. It's interesting what you were saying about baby loss, because when I was a backbencher one of my things that I raised was the microplastics and the microbeads. Wash on cat. Soil. I talked about things, because it's my background, you know, food farming, growing gardening, that I don't know, because obviously you've been there before, Harriet, but things like soil, you know... People thought it was nuts. They did laugh. I laugh and know. It's all on the agenda and actually we got a huge following. We came in this game, didn't we? Rachel, Amun and I, so they probably saw me and thought it was slightly bonkers. It drives me nuts when people say, oh I'm not interested in politics. We don't want to see politics. It's true. Everything in your life is politics. Jobs. Jobs, growth, apprentices, travel, infrastructure.  Well, of course I am the only degree of principal. You know, just how brilliant is that for women, right? It's a lot of women need to earn at the same time as they're learning. Particularly if they've got families, particularly if they're looking to get on in a career, particularly if they're looking to shift careers. So being able to have many, many more options, and now we've got 70% of pretty much any occupation in this country, you can access fine apprenticeship. So that along with childcare, which I think have been two big things, which obviously we're still rolling out challenges, which obviously we're still rolling out childcare, but that'll be the free childcare. Well, the taxpayer funded childcare from nine months up to five years. This is... Well, how many people do we know whose careers have been sort of taken off track by families? How many people do we know, whether it's just those that they've chosen the childcare or maybe they've become a single parent? You've got to make a choice between being there for your kids or working. Actually what you're doing now and what the government is doing is giving that freedom. Yeah, you don't need to make that choice. There's 2.4 million new women in work in 2010. What I'm just saying is that it's the fastest growing part of the labour market, women over 50. So whether it's getting childcare right or making sure that part of your career is the most fulfilling and positive experience. So we're doing it all the way through and that stems from the childcare changes that we made in 2010. And today, just today, ahead of International Women's Day, we had our first round table in number 10 on menopause, talking about intersectionality and the impact in different cultures, why we need to support women to stay in work because unfortunately one in six women between 40 and 60 then get to this amazing career, maybe through the apprenticeship and then feel they've got to step back and we've got to change that. So I think all of us here can say and point to something that is a conservative led policy that we've directly had some impact on. That's amazing at any age or career stage. And I don't think people see that when it comes to the Conservatives. Well, it's how it's pointed also. People don't even see this as politics. And yeah, every single one of these from baby loss to birth trauma to maternity. We're really kind of refocusing the police and some of the violence against women and girls in general. There's just that to-do list of things that have been done. Yeah, yeah, yeah. But to the point that we've said, but like he's kind of making sure that that rises up in a gender that is in an industry that's perhaps more male dominated. Yeah, yeah, yeah. And then you've got to kind of move it around a bit. There was a huge culture change needed in the police, actually. We've had to do that. We really get them to understand it. And they are good, lots of them are good, but there's still so much to do. Someone's been kind of had the awful experience of rape. And that pivot to look at the offender and investigate the offender. Don't investigate the individual illusion phone. That kind of makes a big difference. It makes a huge difference. You've done some stuff in STEM as well. Oh, yeah, quality nursery. No, no, but first what you need to do. Well, girls in STEM is like massive, right? Because that's a lot of control. So I've been on science and sex select committee since 2019. I remember trying to explain how the COVID virus latched onto the human body with the reverse Christmas tree. I'm looking at various people cross party, actually. I'm kind of going mental. But we need to do this. And actually these things connect. So shall I say Hysiwt Bottoms, Northern Engineers, who are my better communities, et cetera. But they can't lead to that. You're like a brave cop defaulting. Hey, listen, I was the pilot there. But the point is they are astonished and actually proud of my cousin's girls going to apprenticeships, degree apprenticeships, laying pipes, in a software engineering out. They love the fact that there's actually an accessible route that's perhaps slightly different. And they love the fact that it's like the 21st century version of night school, which is you don't have to go to university to get into practical STEM and build up Northern Powerhouse. Because some of the radio of the day, they said who's housed you, what you live in. And I said I want to live in Fred Dibnos. No, no, no, seriously, you said Belgium lay them all sorts. You mean you know it will work and it'll be fine. No, no, no, because I want to evolve it. But the point is we're proud of our industrial history and we've been excluding 50% of the workforce and not anymore with the different reforms that we've made here. Well, in farming, in Plontyn College, and I told Rebecca that, the intake this year for farmers is winning. Really? Yes, there is. I do have to mention it's why I need to learn college as well. It's all done. It's all done. It's all done. For the house magazine, which is our internalising, because they're having a bit of a rural focus. And actually, there's still a lot to do, in fact, for women in farming. We've got lots of people working in it now, far, far more, and they're rising up through the ranks because lots of them run organisations like Minette Batters, who is president at the end. We've got a woman now who is president of the CLA. She's got an amazing scientist woman and with a financial background as well, Dame Emilia Force, who heads up Q Gardens, which is our Q scientific powerhouse. So they're in there, but actually, still only 12% of women actually work in farming and agriculture, but that's rising. My point is that we've got such opportunities there, and women are genuinely really interested in the starting, with the science roots, but the wider roots need to come in any way to a president. There's a lot to do with all the things like ecology, soil science, land management. Lots of people have an old passion for you about farming in the back. And then so many of our students in the back area. We have a sort of more of a 20th-century view of the kind of jobs. But even in finance, it's the Conservatives, and since we've been here, have changed the whole system of how we pay for environmental goods in the environment. So we're paying people to do good things, clean the water, to hold the soil, to have healthy food. Actually, women are really interested in that. We do tend to be the ones that bring up the children. We do understand about the people. What are the things that we're proud of in terms of what we've done for the economy and for women and for families? I would point to the childcare office. It's going to save families £6,500 a year working families. So I think that's a really important thing. I think it's in at what age? Well, it will be from nine months to five years old. Also, we're rolling out in April for two-year-olds and then in September, under two-year-olds, and then we'll go up to 30 hours. It's such a huge cost to the people. We're thinking about going back to work, back to your point earlier. Is it even worth me going back to work? So that will really pivot those decisions. Yeah, and I think you actually speak to lots of people. They're like, wow, is this really going to happen? All the discussion is can you deliver it? Will you deliver it? Yes, it is. Yes, we will deliver it. That shows how much people want it. We've got national living wage on top of that. We've got the local housing allowance that's going up by what we've three been in. I'm sure we're all proud of things that we've done from changing the spiking law to that amount. It's about £800 a year per family. They're going to be better off because their rent support in social housing or private rented will be there for them. Of course, we've been spending about £3,000 a year on the most vulnerable people supporting them and then there's been the household support fund. So we've really focused all our energies in a really tough time on the most vulnerable. Don't you think that UC gets a bit overlooked? Sorry, Harriet. I was just going to say about inflation for how inflation is. Yes, that's just scourge for our economy and particularly a scourge, I think, for women. And it's good news that we've got it down to 11.1 where it went after Putin invaded Ukraine down to 4% and that 2% back in our sites again. So getting inflation under control and taking a series of decisions that didn't make inflation worse has been so important for our economy. It's very true. I'm sorry. We can wrap that up. Oh, you've got to start. Particularly as a mum with kids at primary school, school standards. Talk to me a bit about where we are with reading and how much... My daughter will come home from school and I'm looking at what she's doing at nine years old. We never did anything like that. So the standards in schools, that's really been the focus since 2010 and making sure that... because our kids are going on to compete in a very different world than we all went into.  And we always test what we're doing internationally. Your daughter, she's nine. The nine-year-olds in our country are fourth in the world for reading. That's in their own language. Some people say it's because of English. It's in their own language. Our 15-year-olds are now 11th in the world for maths. And when you just think about the progress that's been made in school standards... We were 27th for something like that. We were 27th under the last government. Yeah, we were 27th. It's very good stuff. We're at university, aren't we? University and the apprentices. All kinds of... As agricultural... Universities now. 60% of the people there are now girls. And apprenticeships are going into UCAS. Is that right? The apprenticeships are now in UCAS. So anyone... And this is another thing actually going back to the cost of living. And if you're worried about debt and taking on debt, you can now get to the same place in life via an apprenticeship. You can see it on UCAS. You can skip the student debt. Now, you might want to do the full-time one, but you've got the options. None of that existed before 2012 without this concern. So there's a lot. There's a lot going on. Well, sure. So the other thing that I think women don't see, because you've done really awful in this together, but they don't actually see the camaraderie of it.  So how do you... I mean, you know, when we all walked in in 2019, we looked at all these Augustan senior figures, and... Let's go to the senior. Thank you. You knew us all already. I knew you. I knew you. I knew you. I like what... Like if we put ourselves back in the shoes for people that might want to come and join us, what would we say, do you reckon? Like, they're all right? I think they're all right. I'd like to say this, but a good example is somebody defected from the SNP who's joined us, and she's a woman. And we all got these WhatsApp groups that we had on. Two different ones. And actually, some of them are quite fun, but they're also very helpful. And it's overwhelming what she says about the camaraderie. Yes, she does. She talks about this group of women. I've actually quite touched by that. Most of them are all optimistic, positive. Happy, right? Happy. Happy, right? Happy. Happy. Happy. Happy to everyone here, is that everyone has been campaigning as an MP on something that they really care about personally or affects their constituency. And for me, the example is always the fact that we never had a women's health strategy before the Conservative government. I can't believe that. She'd never the case under any previous government. And literally every single person here has picked a different issue on women that you've been championing. And it's because of us all doing those campaigns that the government has brought in. I think that's a really important point after the making is that actually, women can make that difference and be the change. And all of our personal experiences is what we can bring to the Chamber and be that sort of unique voice of Parliament. Well, I think that's a brilliant place to head. Thank you so much. Thank you, Angela, thank all of you. I mean, I know that all of us have championed different issues and we could probably talk for hours to talk about Annie I. I'm a grandmother of two. A little girl. So all of this gives me so much hope and optimism for the future. So thank you all for coming for a cup of tea.


All right, so good morning, everyone. And if you do have a question, go ahead, shout it out. But maybe at the end, I did a run through yesterday. It's a little too much content. I think it was a little aggressive in the amount of material I wanted to cover. So we might not quite get through all of it, but that's OK. If you do have a question, go ahead and ask. And just an introduction. My name is David Rader, and I'm with OpenSCG. And we do a lot of work around postgres migrations as well as helping folks scale their database, scale their database platforms. And a lot of this is really based on experiences that we've had with customers about how to manage larger databases, especially when you get into the data warehouse or analytic type applications. So what am I talking about here? What is this all about? You might have seen questions about, does postgres support partitions? How do you deal with that? Are there any ways that you could actually compress your data, but also get faster queries out of that? And what about trying to stretch a larger table across servers? So if you wanted to start doing multi-server, start doing sharding, possibly start stretching out into a cloud-based database. And if you're new to postgres, what is a foreign data wrapper? What is an FTW? Think about, if you're running a database, if you're running, especially in sort of a data warehouse or a system where you keep adding more and more data into your database. So maybe you're doing log records, sensor records, order history records, anything like that, where you just keep growing, right? It's not a single constant quantity of data. How do you start dealing with that? How do you deal with older records? You want to start purging, start moving things into an archive. If you just delete those records, vacuuming has a problem later as you try to catch up. And we all are running out of disk space on our servers. So how can you start dealing with this? Well, a couple of things we can do about it, right? So the first thing, if any of you are experienced DVAs with larger databases, the first thing you want to do is start partitioning that table, right? Break it up, create multiple different sub-tables, deal with that. How does Postgres deal with that? How do we use that? Second thing we can do is really take advantage of some of the advanced Postgres features like foreign data wrappers that give us the capability both to go across multiple servers, but also within a single server, start using interesting data storage techniques. One of those being column storage, which is really good for analytic queries. It's really good in that data warehouse situation. Or start moving those archives to a remote server. Just a quick show of hands. Any of these terms, foreign data wrappers, extensions, column stores, any of them familiar to you so far? Yeah, okay, good. All right, so with that big table, your queries might be slowing down. Some of your operations, what do you do, right? All right, partitioning. This might be a little bit of basic, but I want to just level set everybody. So dealing with that large table, partitioning, simple thing to do when you talk about sort of vertical partitioning is just break the table up into multiple chunks, right? You might do it by date range, weekly, monthly partitions. You might do it by IDs. So newer customer IDs and one partition, older IDs and a different partition. But the idea is to just break up your large table into partitions, make it easier to manage. So how does Postgres do partitioning? Well, as of Postgres 9.6, the current production release, it really uses table inheritance. So if you're been using Postgres for a while, you may have heard that it's sort of a post-relational system. Deals with table inheritance, sort of object-oriented inheritance of tables, that's actually how you implement partitioning today in Postgres 9.6. The sort of best practice, the parent table would be empty, you wouldn't have any rows in that. Each individual partition would be a sub-table, child table underneath it. And you would break up those partitions by date, or possibly by customer ID, by ID ranges, so that hopefully you're able to spread the data across. Now in the case where you're doing log entries or so forth and it's sort of a date-based partition, you're always gonna be adding new data into the newest partition, the one that you've just recently created. If it's sort of customer data and you're splitting it by date, by ID, sorry, you may be inserting data across different partitions and you're able to spread out. When you're doing this though, you've gotta handle how do you insert the data into the right partition. So your SQL query is still gonna be doing an insert into that top-level parent table. But you wanna make sure that the data actually gets routed to the right child table. And you do that with an insert trigger and you're able to route the tuple down to the correct child table. The cool thing about doing partitioning this way is that the Postgres Optimizer is able to use the check constraints on the child tables to actually exclude them from your query. So when you come in and say, I wanna query the entire set of log data, the Optimizer doesn't have to scan every one of those child tables. Doesn't have to scan every partition as part of the query plan. It can actually use check constraints to exclude some of those partitions. Now, breaking it up, that's good. Maybe your disk is full. Nobody likes to take downtime to add more disks to your server. So what can you do? How can you actually start making it smaller? Well, Postgres is a great relational database. We all know it's the most advanced open source database, right? But it's also got a lot of no SQL capabilities as well. And one of those is the ability to add a column store data store underneath for individual tables. This is done using a foreign data wrapper, using a column store foreign data wrapper. And you're able to take data, actually compress it on disk, as well as for many types of analytic queries, speed up the execution of those queries. Now, if you're familiar with column store, I'll go into more detail about it later. But if you're familiar with it, it's really optimized for sort of batch oriented operations. So it's really good for older partitions. If you're doing sort of date oriented partitioning, things that are not gonna change anymore. So you've added your log records in, you've added in those older orders. Well, they weren't old when you added them, but over time they don't change anymore. So that's a really good situation to move them into a column store, to be able to squeeze them down and speed them up. You don't wanna do it for your current data, where you're adding new records in or updating records right now. It doesn't really work in the column store to do that. But what if you're thinking about moving to the cloud? We certainly, Amazon's a big sponsor, Google just gave a talk about their Postgres cloud services. Can you move half your database? Anybody here ever tried to move half a database to the cloud? You can. You can actually start talking about sharding and moving some tables out to a remote server. You can do it essentially in the same way that we just talked about with the compression where if you take individual partitions and start turning them into foreign tables using the Postgres foreign data wrapper, you could move individual partitions out to a remote server. And this way you can actually start sharding across multiple database servers, start using more CPU power. You can also start elastically sort of moving out to a cloud. But you don't have to move your most recent, most current data where you're getting the most updates, you're getting the most activity. The application expects the most performance response time. So if you're able to separate it to sort of older history records that you want to query versus new frequently used data, it can keep your users and your application performance expectations under management. So just quick pause. Does that make sense to everybody? Okay, a lot of heads nodding, good. So that was great, that was sort of the overview. Now we're gonna start making eyeballs bleed and sort of look at code and how do you actually do this? So the sample data set that I'm gonna be working off of is based on some of the airline on time arrival data. It's available from the US Department of Transportation, the Bureau of Transportation Statistics. It's got about six million flight records per year, goes back 20 or so years worth of data, pretty easy to get. And it's just a nice data set to work with for doing, playing around with and samples and such. If you look at what the parent table would look like and for this arrival on time, you've got what's the flight date, what's the carrier, flight number, where did it start from, where did it go to, when was it supposed to leave and 20 or 30 more fields, right? And we talked about before when you're gonna partition, you need to go in and create the child tables and create all the check constraints that go on those child tables and just show hands who has created partitions and check constraints, right? So this would be the way you would do it if you were doing it by hand, right?  And if you're doing it by date range, this was all set up for sort of year by year partitions. You create that check constraint and what a check constraint does is it tells the Postgres optimizer that that table cannot have data outside of that check constraint. If you try to insert data, it will actually fail. It would use the check constraint to fail the insert. And when it's planning to select, it can exclude those partitions based on that check constraint. If you actually run a query against the parent table, again, the table inheritance works so that if you run a select, in this case just a simple select count star off the parent AOT table, when you specify a date range, the query planner is able to go in and say, okay, I'm gonna do the count aggregate, great. But first what I'm gonna do is scan the parent table, which is empty. You'll see there are no rows that come out of the parent table. And I'm gonna scan just one partition. So even though we've got year by year, we've got 20 partitions, the query planner is able to use the check constraint, look at the where clause and say, there's only one partition that could possibly satisfy that where clause, I can ignore all the other partitions, drop them out. This will absolutely help speed up those queries against those large tables where you have many, many partitions. When you're trying to insert new data in, I mentioned earlier that it's sort of this trigger-based routing. So if you do an insert against the parent table, you need to actually capture the insert, add a trigger onto the insert, and move it to the correct partition table. One of the tricks that you always have to think about is what do you wanna do if you happen to be missing a partition? Do you want to create a default or drop it into the parent table by default? Do you wanna reject the insert? What do you wanna do? It's, this is definitely an application-specific question. If you put it in the parent table you wind up with funny things later where you need to move data out of the parent table, you have a little more maintenance effort to deal with. If you put it into a default partition, you don't have clean data in there and you can't exclude that default partition. So this is something that you wanna think about from your application standpoint and decide how you best wanna handle that. And the insert trigger looks similar to some degree to the partitioning and looks similar with those check constraints where you just, as you go through the insert, you take a look at the key field, you wanna optimize the insert trigger to put the most frequently used partitions. So if you're doing date-based or serial ID-based with new customers, put those sort of newer partitions at the top just so that they get found in the trigger short circuits quickly. So if I go through and just reroute, say, hey, if it's an insert operation, check the date values, okay, which child partition should I actually move that insert into, right? Makes sense so far? Okay. Lot of code there. One important tip if you're using Postgres 94, 95, 96, don't write all that code. So use an extension called pgpartman, which does all of that for you automatically. Instead of all those create table and create constraints and so on and so forth, you just create the extension and then create a parent relationship and it can build the partitions for you. So also got maintenance capability. So we talked about missing partitions. Obviously, if you're doing something date-based, as the date changes, as new months come along, you need to add the new monthly partitions in. You can sort of plan ahead, you can create three partitions in the future, but you're still gonna have to add additional partitions as time goes on. Same thing if you're doing sort of customer ID-based or any type of ID, as your ID numbers grow, you're gonna need to add new partitions to handle that new data. Partman has that sort of maintenance scheduling built in or you can schedule it through CrownJobs. So it's important to understand the background and how it works, but there are better ways in the Postgres community to take advantage of some of the reusable parts and use the extension here. Similarly, if you are doing bulk loading, so if you're loading new data in, just don't go through the parent table. If you can possibly avoid it, do the direct insert into the trial partitions. This requires planning ahead of time to say split up your bulk load data, but running every insert through that insert trigger is a lot slower. So if you can avoid that, if you can bulk load into the trial partitions directly, you're gonna get a lot of improvement there. Now, I said in Postgres 9.6, this is how partitioning works earlier. So one thing to watch out for or one thing to notice that in the upcoming version of Postgres 10, there's more native partitioning built in. So the optimizer knows more about the partitioning. The query routing, tuple routing, sorry, is built in to the native Postgres executable. So the insert on a parent table that needs to be routed out to individual partitions can be a lot faster, as well as select queries and the optimization around being able to drop partition or exclude partitions from the query plan is a lot faster as well. So Postgres 10 has the sort of first round of native partitioning built in should be coming out in six months or so this fall, probably. Definitely take a look for that as you think about upgrading to Postgres 10, but it is the first version of native partitioning. There are still some limitations.  So normally you would need to create an index on every child table.  You can use partman to create indexes across child partitions. The first version of native partitioning in Postgres 10 isn't gonna support automatic indexing. So you're still gonna need to go in and manually create indexes. And it's not gonna be simple to convert. So if you have an existing partition table in Postgres 9, 5 or 9, 6 and you upgrade to Postgres 10 and you wanna convert to use native partitioning, that conversion process is not gonna be just an altered table, switch it to native partitioning. You're probably gonna need to create a new native table, native partition table in Postgres 10 and copy the data over. So there are some limitations. The partitioning isn't gonna be implemented in every part of the optimizer in the first pass, but it's something to definitely pay attention to if you're using it. Okay, so that was general background partitioning in Postgres, child tables, check constraints. Next we're gonna just talk about foreign data wrappers and how we can start using those. Does everybody know what an FDW is? Yes, most folks, great, okay. So, you know, simple, right? It allows your Postgres database to connect to other data sources. They can be all sorts of things. It was introduced in Postgres 9, 6 originally with read only. Each version of the 9.x series added to it from write capabilities to pushing down ware clauses to being able to remote join two tables in the remote database. And again, feature update in Postgres 10, the Postgres FDW will also have the ability to push down aggregates. So if you are doing analytic work and you're doing sums, counts, et cetera, in 9.6, if you try to do a sum aggregate function on a remote table, Postgres will actually pull all the rows back and sum them up in the local server. So it's a little painful. In 10.0, the Postgres FDW will be able to push that sum down to the remote server and you'll get a big speed up on doing that type of aggregation. That can be really helpful when you're talking about doing part of sharding and when you're talking about moving some of your data into a cloud server. There are lots of foreign data wrappers available in the Postgres ecosystem. So, Postgres FDW comes as part of Postgres install. It's easy to use it as a setup. Certainly other relational databases, Oracle MySQL, SQL Server, SQL Lite. There's a JDBC, FDW, there's ODBC, FDW. These are easy ways to connect to just about any relational database you might want. You can also connect to no SQL databases. So if you wanted to join to a Cassandra data store or Hadoop or MongoDB and actually start integrating data from Postgres to lots of other types of data stores, you can do things like files. So CSV, XML, JSON. It's even one that allows you to do a PGDump export file as a foreign table. So if you're trying to move data from one server to another, you don't necessarily need to load the entire dump. You could run a query and just pull individual records out of that dump file, so pretty cool.  So if you want to look at CPU stats or things like that inside of a SQL query, you can do that. Those are all really cool and they show some of the power of Postgres and how you can do interesting things. What I care about for this is the column store. So there's a C-store FDW, the guys from Citus Data who are also here originally created that and still support it. And it is a column store data format. So if you've done anything with Hadoop or with sort of big data systems, you may have heard of column store, you may have heard of the optimized row columnar on disk format. The big thing is that instead of storing data as rows, so in Postgres you insert a row and it basically writes the entire row sequentially on a data page. And when you insert another row, it writes the next row sequentially on a data page. Oh, don't hit the microphone. And as you keep doing that, keeps adding individual rows. And that's great if most of your queries are trying to pull most of that row out. But if you're only looking for the third column in every row, you have to actually hit every single row, the whole row, and there's no way to just grab the third column only. What the column store data format does is break things up and actually store by column. So if a lot of your queries, if a lot of your analytics are, give me the maximum value, give me the sum, give me something where I just care about two or three columns out of a 30 column-wide table, this can give you a lot of performance benefit because you don't have to actually scan all the data. The C Store FTW also has sort of built-in skip indexes so that when you apply where clause is it's able to skip data pages, it doesn't actually need to look at every record to filter them out. It does a lot of optimizations like that as well as compresses the data on disk. So you get a lot of different benefits there. The caveat is that any sort of column-oriented database or column-oriented data store is good for batch inserts. It's not really good for updates because if you tried to update a single row, it would need to go and hit each different part for each column and change it. And if you were inserting one single row, it would need to go add that column value for each field separately across. So it would be doing a lot of different I.O. It really wouldn't be efficient for doing single operations. So that's great for moving a partition over. If you want to install the C Store FTW, you can get a binary install in the Big SQL distribution using the Big SQL PGC command line. You can compile it using the PGXN client tool for compiling extensions. Once you've got it installed and running, add it to your Postgres Conf shared preload libraries. And after that, restart the server, sorry. Got to always restart after doing your shared preloads. Once you do that, it's sort of a standard extension. So create the extension in your database, create the server. So any foreign data wrapper that you work with, you wind up creating a server, mapping it to the foreign data wrapper. And then create the table definition. And there are some options. So you can choose what kind of compression. You can choose some optimization around how large are the stripes, how many records per stripe, et cetera. So as you learn your data better, you can make it faster. But basically, in the C Store FTW, you don't have an existing table for the Postgres FTW for other sort of remote foreign data wrappers. You already have a table that you're pointing at. In this particular case, you're defining the table as you create the foreign table definition. Loading the data is as simple as, if you have an existing partition, so in this case, we wanna move the 2011 partition from a native table into a sort of column version of it, insert into select star. It's fairly simple to just copy the data over. You could also use the copy command to load up in files. Make sense? Why would you do it? So if you look at the size of those two partitions that we just did, right? In the native Postgres table, that one year partition was about 725 megs. When we moved it over to the column store partition, it was reduced to 169 megs, right? So 76% space savings, right? It's pretty nice. So if you are running out of this space, you don't have to go make your server bigger, you can compress your data. Great. You also get speed benefits. So for some of those analytic queries, so if I was looking just for how many flights in 2011, six years ago were canceled, there were 193 flights in the US that were canceled six years ago today, and it takes close to one second to execute that count in a native Postgres partition. If I do that same query on the compressed column store partition, it runs in 52 milliseconds, so almost 20 times faster. And that's because, again, it's an analytic query. That column store is really optimized for that type of analytic use. Okay. Covered some partitioning, covered foreign data wrappers, talked about C-Store. Makes sense so far. All right. How do you make that a little more automated, right? That process of creating this C-Store partition of moving the data over, it's kind of manual. Let's try to optimize that a little bit. We want to move the older partitions over. We want to convert the partitions. And what's interesting is Postgres data catalog has all the information you need to do things like alter the inheritance of a child table to the parent table, or remove a child partition from that parent table. So the basic process of doing this, and can you guys see the text in the middle here? No. Okay, great. So six step process, pretty simple. We're gonna skip that part. First thing you want to do is check that the child partition you're trying to move is actually a child partition. So if you go in and say, I want to move that 2011 partition, the first thing you want to do is query the Postgres catalog information, find out for that table, is it actually a child of the parent table? Because you don't want to move something that's not a child. And then you want to look up those check constraints. Remember we talked about how important the check constraint is for the optimizer, for the trigger inserts, et cetera. And when you're trying to make this into an automated process, you don't want to be typing out the new check constraint. You want to take the check constraint from the old partition and copy it over to the C-store partition that you're gonna create. So you read the check constraint out of the Postgres catalog. You should only have one check constraint port table. We'll make sure that's true. And then actually get the full text definition of that check constraint. Create the new partition. And in this particular case, you're building up sort of dynamic SQL inside your PLPG SQL function, generating that create foreign table statement that we showed earlier with all the columns in there and the options on the foreign server. And then moving the data over, just doing that insert, select start from. And then running the analyze command on the foreign server. So the C-store FDW in particular uses statistics. It pushes those statistics back to the optimizer. That helps a lot with query planning. So if you are gonna bulk load six million rows over, definitely use the analyze command to update those statistics. And then add that check constraint to the new partition. So we queried it, we got the definition we copied it over earlier. Add it onto the new partition that we just created. Again, generating the dynamic SQL. Drop the old partition and add the new partition. And Postgres is really interesting in terms of you can actually create transactions around this type of DPL statements. So if you are doing this, you can turn this into a transaction. You can roll it back if anything isn't gonna work. So it makes it really nice from the standpoint of managing your database. And you're able to just alter the new table that you created and make it inherit from the parent that you're trying to connect it to. And then when you go and run the query against that new partition with a where clause that shows up in the date range that you just moved over, the optimizer is able to use the check constraint. It's able to just do the single foreign scan against one partition. So it drops all the other partitions and knows that this is the only one that might be there. And the C Store FTW gives you a little bit of information in the explain and analyze which file was it working on, how big was the file, et cetera, and how many rows came back. And again, you're down in that 20 millisecond range. So you can actually set this up as an ongoing maintenance process that you run once a month if you're moving sort of monthly partitions over. And you can script it and automate it to convert all the partitions up. If you compare that same query against the native table, it was 1.3 seconds instead of 50 milliseconds. So that big speed up going against the C Store. Partitioning FTW C Store, converting old partitions to C Store makes sense. So the next thing would be, well, what if we wanna move some of those partitions to remote servers and using the Postgres FTW to connect to that remote server? Which, similar scenario, you can take individual partitions from the large table. We may leave some of the partitions compressed. Other ones we're gonna convert over into a foreign data wrapper remote table, move over to the other server. And we're gonna actually execute the queries remotely. To set up the Postgres FTW, similar to any FTW, create the extension. It comes with Postgres.  Create the server. In this case, when we created the server on the C Store FTW, you didn't really have any options. You didn't need to do anything because it was just creating a local file on the same data server. When you're creating a remote connection with the Postgres FTW, you need to provide the connection options. So which server are you actually connecting to? What's the port number? Which database on that remote server are you doing? And then you need to create the user mapping. So whatever user you're running, your local Postgres query as, that user needs to be able to have some mapping that says when that user tries to connect and run a query on the remote server, which user ID and password should it use on the remote server? So it could be, you could configure it so that every server has the same user. You could have different users on different servers, but you need to somehow tell your Postgres foreign data wrapper which remote login you're gonna use. I recommend usually creating a separate schema. So when you import the table definitions from the remote server or when you create your remote foreign table definitions, create them in a separate schema just so that you can manage them. Sometimes that doesn't give you complete transparency on the application and you may decide that you really want your remote tables to be in the same schema as your local tables. But from a DBA perspective, I always find it a lot easier when you're looking at your list of tables. If the remote tables are in a separate schema, it's very easy to tell that they're actually remote tables and you don't start doing crazy things to them. The Postgres FDW and most of the other FDWs actually allow you to import the foreign schema definition. So earlier we went in and said create a foreign table and we listed 20 fields and defined the table that way. You can do that table by table, but you can also just import the entire foreign schema. Saves you a lot of time, avoids problems of data type mismatches and any little issues that you may have there. And again, if you are gonna do that, it's really nice to put it in a separate schema just from the organization standpoint. You can filter it out, you can choose individual tables, you can give star list of tables, things like that, but it's a good way to pull the definitions over. When you go and try to move the data from your individual partitions over to the remote table, you're gonna do it in a pretty similar way. So the insert into select star from the local partition works, you can actually alter the remote table definition, add the check constraint to it. So you can apply check constraints on remote tables. One key is that Postgres is not actually validating that check constraint. So you need to make sure that your data really matches what you're telling it, but the optimizer will use the check constraint in the query plan. So make sure if you're connecting to a remote table and you're gonna put a constraint on, it really does match what you're telling the optimizer. Otherwise you'll get wrong results, right? You can add the remote table to your parent table. So create the inheritance relationship and tell Postgres that it should be part of that parent table hierarchy. And you can then remove the old partition by just doing an alter table, no inherit. And then if you want to, you can drop your local table, drop your local partition if you don't care, or whatever type of archiving you need to do. And then the query against the remote table. Again, the optimizer knows that it can use the where clause. It can apply the filter, use the check constraint. And it only needs to scan a single partition. So it looks at the parent table, it looks at the single partition. It happens to be a foreign scan. So it executes the full foreign scan. And in this particular case though, what you'll see is that the Postgres FDW is pulling back all of the rows that meet the condition and the aggregate is being done on the local server. So this is what I was talking about earlier where in Postgres 9.6, the Postgres FDW was not able to push those aggregates to the remote server. So if what you're doing is more analytic queries, if you're doing sums, count stars, et cetera, you're gonna have some delay there.  If you're just retrieving one row at a time, if you're moving order history records, things like that, and you're just gonna go pull one order history record, that's great, works fast, it's easy. But the aggregates are gonna be slower than if you're doing them locally. So the summary on the remote server partitions, it works, it mostly works. Most of the Postgres starting solutions are built using this type of approach and using the FDW. There are a lot of little gotchas. There's a lot of things to watch out for when you're doing this. Certainly the latency.  If you're actually talking about a server on the cloud, you've got a lot more latency from a network standpoint from a remote execution standpoint, watch out for that. Inserting through the foreign data wrapper is pretty slow. So if you're talking about doing that insert into select star, that's gonna take a while. It's a lot slower than just moving it into the C store FDW locally or moving it into a different table. You may wanna really look at doing exports of data, moving the data over to the remote server and doing a load on the remote server directly. Talked about Postgres FDW in 9.6 does not push the aggregates down. So watch out for that. That'll be better in 10, but for right now, you got to live with it. If you lose your remote connection, so even if some of the partitions locally were available, but if the remote connection was not available, the whole query would error out. So a lot of times what you start doing is creating sort of a, especially in the case where you're moving history partitions over, you'll create a view of just current data or you'll leave the parent table as just current data and you'll actually create a history table and then create a view where it's current plus history. And in the application, if you only care about the last 180 days, something like that, you can just query the local data, just query the current data.  But that way, if you lose that connection, you're not erroring out on most of your user queries. You're only erroring out when they're actually going on the remote data. And you can't execute DDL through the FDW. So if you're trying to move partitions over, all of the work of actually creating the new partitions can't be done through the FDW. You either need to do it through a separate libpq connection. You could do that in a PL Python store procedure or you could do that in your application outside or you need to manually as a DBA pre-configure the partitions on the remote server. So something to watch out for as you try to automate it as you try to make it into a repeatable process. All right, talked about partitioning, the basics of how it works in 9.6, little bit of preview of how it's gonna work in 10.0, child tables, inheritance, et cetera. Talked about the foreign data wrappers, both local ones like the column store as well as remote Postgres and other databases. Column store on Postgres, some of the benefits there, especially for analytic queries, how you move partitions over and how to use the Postgres FDW for the remote server. So we will pause there, any questions? Sure, how to match those two concepts. So I wanna separate very strongly the Postgres FDW versus the column store FDW. So in 9.6, the FDW API allows pushing down aggregates. The Postgres FDW does not push aggregates down to remote Postgres. The C store FDW does calculate the aggregate locally. So any other questions? Yeah, you can set up the SSL connections on the FDW as well. At which point would you partition a Postgres table basically? So it's absolutely gonna depend on how wide the data is and what the size of the records are. A table with a million records, typically in Postgres, no problem, just single table, don't worry about partitions. When you start talking about 50 million, 100 million records, one table could become a problem. From strictly query performance, it's actually not an issue usually. So the proper indexing, even partial indexes on a single table, you can do query performance on 100 million, 500 million rows fairly easily. Where you really start seeing benefits to the partitioning is around the data maintenance. So if you want to do any sort of archiving, if you wanna delete a month's worth of data, if it's in a single large table and you try to delete that month's worth of data, you created a lot of vacuum debt. So the vacuum process needs to come through and clean up all those old records. The delete is a long, delete execution that's gonna be slow.  Similarly, if you're trying to do exports and backups, you can basically export and backup those individual partition tables. Whereas if it's a single large table, you gotta deal with the entire table. So the query performance is not gonna be where you start seeing that threshold. It's gonna be more around the data maintenance. I'd be curious, anybody in the room who has done partitioning, when did you actually partition your table? Yeah, yeah, landing ahead. When it's like building the enclosures, there's no big built-ins and it's always based on some kind of engine and efficiency index usage for the four-election of our practice data series. Although in place, the entire type of work blocks will move right to queries against the total partitions of the parent so that the data can not be filled with all those blocks. Yeah. But it really is for large tables. Large is relative, but I would definitely keep it in one table until you really need it unless if you're building the second version of a system or if you know for sure that you're collecting sensor data or something and you know you're gonna have 10,000 sensors and you know you're gonna get one record per minute or something and you can do the math and you can say it's gonna be a billion rows pretty fast then go ahead and partition ahead of time but otherwise wait until you need it. So the optimizer is not great at doing sub-partition joins completely. You can join the two parent tables and it will execute the plan. You'll get the correct results. It's not perfect and it's not gonna be fully optimized and that's especially true in the 10-0 native partitioning that that sort of partition level joining is not implemented in the first version. Partman doesn't do anything special for you so it's the similar question of if you know how the data is partitioned and you know how the query needs to work you can write the join against the two partitions. You can absolutely just join the two parent tables together but you won't necessarily get the same performance benefit you would expect. Now if both tables are partitioned on the same key so that and you're joining on that key then the query optimizer can prune partitions and it will individually prune all the partitions but if you're trying to join on a key that they're not partitioned on there's not the magic there. Any other questions? You talked a bit about some of the numbers for the performance aspects using the column store. Do you have any sense for the performance penalty on the transactional website? On column store specifically? I don't have some numbers but it's pretty bad if you tried to do individual inserts. If that was your use case to do individual inserts don't use C store. Okay, if you can still hear any other questions you're talking about in the Postgres FDW inserting to a remote table as well. So that is a great question. I have not looked at that code section to know why. Obviously it's actually executing queries remotely. It's not doing anything Postgres is treating that remote server just as any old remote server. So there's no deep optimization about how to move the data over and it's not doing anything intelligent about saying I know that's a Postgres server therefore I can push the data in a special way. Obviously it's going over network connection those types of things but it's a good question in terms of is there anything that could be done to improve those inserts? It's supported syntactically but it's gonna process the file locally and then push the data through the FDW. Still can do so. Try your use case. If you actually try to export in the case where you have a local partition that you wanna move to a remote server if you try to export the data and then copy the data over and then load it you're still gonna have multiple steps there and so try it one time and sort of compare the two and see which one works for your use case. If you're doing an export and moving over. Yeah, so I mean you would actually export the table locally copy the file over and then execute a command on the remote server to import it. This is in the case where you're trying to move to a remote Postgres server not going through the column store. Any other questions here at the end? Thank you.


Gang hope everyone's having an awesome day. Whatever day it is for you when you're watching this welcome to the long-awaited Wendy's Frosty video. It's been 84 years. So this started because I love chocolate milkshakes Damn, it's some good milkshake. I love Wendy's Frosty's one day. I was craving a chocolate I don't know ice cream milkshake some kind of shenanigan like that and I thought okay Why a frozen banana I have you know this and that I'm gonna check it all in the blender and just see what happens and oh my Goodness tasted just like a Wendy's Frosty bloody delicious now If you are not of the optimal healthy variety like myself and you enjoy taking more liberties with your diet like I do Sometimes I've got you to you know, you don't have to have the most optimally healthy version I just like to because why not if you can make it taste good and it loves your body more boom That is how we win. That's where you lose weight That's where you keep your healthy weight and keep at your goals effortlessly at least it's become effortless for me over the past few Years many however, let's go and make this frosty and at the end I'm gonna show you how to make the less healthy version. However, this is delicious. Let's go We have a frozen banana some vegan greens plus because you know we could always use more veggies three packets of Stevia, this is cacao powder. This is psyllium husk powder for fiber some ice unsweetened vanilla creamy cashew milk and Maple syrup to sweeten we're gonna throw all of that in this Breville boss It is Incredible and that is going to create a mock Wendy's Frosty.  Also, it doesn't have much to do with health and fitness But I've been asked to make a video on how I repurpose these bath and body works containers And you know it can have a little bit to do with health because it is way healthier to store any kind of food items in glass Other than plastic not to mention these have little rubber things on the lid so it creates a nice seal that way It's a piece of cake. You're saving money to spend on more healthy food. See what I did there Yeah, so that video is gonna come down the line, too I totally forgot to mention that adding protein is an awesome idea. This one is unflavored I recommend chocolate for the frosty idea, obviously and then if I'm feeling really cheeky sugar-free calorie-free not good for you not healthy, but Part of my 80-20 if I really feel like making that sweet, I will put some of this in here. Anyhow, let's Get this blended now the Breville boss Why I recommend this is because you need to have a Vitamix or stronger blender If you're using any kind of greens powder in order to make it bio available to your gut or a protein powder So bio availability it means that your gut can properly absorb it because it has been assimilated into small enough Powder essentially so that your gut can absorb it. All right I love this because it's got the green smoothie option You can literally put spinach in here disappears won't even know. It's there. It's got the smoothie frozen dessert I'm gonna try that and everything takes exactly one minute. Also BPA free BPA is dangerous because it mimics hormones in the body Leading to endocrine disruption, which can be detrimental, especially to children during early developmental stages It has been linked to heart disease, cancer, obesity, infertility, autism and more Yum. Oh, yeah, I put one tablespoon of cacao powder and one teaspoon of the psyllium husk fiber Also that psyllium husk fiber thickens it. So oh and one cup of almond milk Delicious That's it cuz I promised here is the unhealthy Wendy's frosty Actual ingredients that probably tastes a lot more like a Wendy's frosty than my healthy version But not good for you. Anyhow one can of sweetened condensed milk one eight ounce tub of cool whip a half gallon of chocolate Milk mix all of the ingredients first then pour them into an ice cream maker Mix for 20 to 30 minutes until it reaches frozen perfection pour in a big glass insert straw and enjoy And then there's also a low calorie version one cup of fat free milk two tablespoons of low calorie or sugar-free Chocolate instant pudding two tablespoons of cool whip says free there I'm not sure if it means fat free cool whip one teaspoon of vanilla and eight ice cubes Put all of those ingredients in a blender and blend until smooth. So whichever way you roll enjoy That's it super easy so healthy for you and like I say add in the protein if you want to make it more of a meal Add in a handful of baby spinach add in some avocado. It makes it way creamier You know watch it on the spinach front though because although it does disappear in a blender such as this boss It's still not gonna taste as good and as Treat like as if you just leave out the veggies for this one Okay, anyhow if you thought this video was helpful informative or entertaining at all Please hit that thumbs up down there as that lets me know what kind of content to keep producing for you If you have any ideas of any recipes you want me to hack or you would like to see hacked Please do comment them below because I have not been stumped yet and if you would like notifications of each time I post a new video, please hit that little bell Notification icon down there and you will be notified each time I upload please please subscribe to this channel Subscribing really is where all of the support comes from for me Please share the channel aside from silly recipe videos like this There are videos on this channel that can help heal more than 90% of any health wellness or body image challenge Including weight loss folks. It's really not that hard. I've got the secrets check them down below and until next time Have super amounts of fun in your life have super amounts of fun trying to hack recipes yourself If you do one send it to me. Let me know I want to try it I'm all about sharing the ideas and until next time. I'll see you then bye


Hello, and welcome back here to the channel. We're here on forza horizon 5 and Ryan Turks Toyota hatchback drift car So we're gonna be taking a look at two FD tracks that I got tagged in Probably some of the best FD tracks to date here horizon 5 that I've seen so we're gonna take a look at them You should follow me on social media all the found description box below Make sure you check in the link down below for all the deals on close water the month is coming to an end You should get yours before the deal ends. So let's get to it So we do have some new share codes today, like I said for some FD tracks that I was tagged in This is the share code. We got one one four eight two four nine three six and it is FD Atlanta So hopefully we do have solos. So we're gonna go up into solo We're gonna go in FD Atlanta in Ryan Turks car because we're already in it So we're gonna see what this tracks all about so based on the Instagram pictures and everything I saw it looks Amazing and a little video that you know a few of the people I follow were running So we're gonna take a look at this here for today's episode as long as one more track as well Track that one of the tracks I call home in a set of Corsa We're gonna be ripping here in horizon 5. We'll get that gum out Toyota Corolla of Ryan Turk here And we're going to road Atlanta FD Atlanta So like I said based on the video I saw this is probably four of the best-looking Atlanta tracks there is We got a head in there So it's so amazing that people are tagging me in these you know Tracks and stuff like that because it's great for me to go in and drive these things Just got to find out where I got to go first. It looks like we just got to go up here So I got a bunch of trees and everything up there. We're going up in this part of the track. Oh Oh, yeah iconic FD Atlanta, Rhode Atlanta downhill. Let's go full send fourth gear hit So, oh, yeah, this does have a very good Atlanta feel right now. Oh We looped it very well done Atlanta track here on this Horizon 5 event lab Honestly, that feels very much like road Atlanta. So we're gonna go full set again on it Who knows to this man? I'll leave his Instagram down in the description box below as well as well as the share codes for these tracks One more final run here or another run not final run Do a fifth gear hit this time all the way out to the outer zone. There we go. Oh Little tire drop there in the dirt It would have been dirt in actual FD. Oh, we couldn't link that one too well All these tracks are so much fun It's so awesome like I said in the last episode to see these kind of tracks here in a set of course There and now horizon five. So this is amazing.  Well, let's go a little First-person action got a stalled it up there. Imagine link that section though Just a little drop down there But managed to keep the car in one piece His cones leave all the cones get crushed. That's the simple things in life So we're gonna go one final run here in third person See we can't get a amazing full-pull run and then we're gonna switch up tracks to another track One of the tracks I call home in a set of course. So let's go full send second gear start There would have been a little bit of a dirt throw there. Oh, we got it this time. There we go FD Atlanta here in horizon five and we're gonna take out these star cones So we're gonna check out one more track. So let's get that share code going probably gonna change up cars. Let's go full send so We're gonna quit this event, you know, we'll keep in Ryan Turks car rather than changing up the car We're just gonna go into the next one where I gotta find I Find my phone here. All right. So the next share code We have two share codes that we're gonna take a look at so we have Two versions of this track. Oh, no, no, no, no go back. We have two versions of this track a day and a night So we're gonna go check out the day one first Let's get this share code entered So this is FD or Lando and we're gonna go full send. We do have a night version of this track as well We'll change up cars. Let's uh Let's bring out Kyle Mohan's Rx8 full send on this See what we can do in columns rx8 at FD or Lando So Orlando and Erwin L are two tracks that I call home in a set of course. So and now we're here on horizon five Taking on the wall of Orlando You guys remember we did do wall, New Jersey And now we're gonna take out Orlando and we will take on it at night as well because there is a night share code as well Ribbon through this part. Okay Oh, we even got the parking lot. Oh, that's pretty good You got the parking lot with paddocks for to park the cars and everything Now we heading up into Orlando speed world. Oh, this looks like this would be a good old time To the burnout box section. Oh Let's see what we can do here. We've got echo off the wall Look here. No, we're high enough on the bank where I want to be Okay, a little bit tricky on this bank are definitely not set up for the bank So we're gonna have to give that another go I think the car may not be correctly set up to run that bank, but we're gonna go full Send again on it See if we can't get the car higher up on the bank could have been the wrong gear Okay. Yep. Looks like we do need to run third gear here And just bang off red line. All right, so that's much better in third So looks like we got a run third gear RIP headphone users, but it's gonna happen this way We got to check this a look at night So we're gonna run this one more time here in the day We take a look at the night one a little wall tap did not get all the way where I wanted to be This track would definitely take a little practice in order to get this down and dialed So let's go take a look at the night version before we end this episode off Definitely fun and definitely need a fine-tuned car for this because of these tracks on the way the banks are and everything You have to have a really dialed car. Otherwise, it's not gonna feel the greatest because of well Having to build it out of these like wood planks and things like that. So Let's go One of final event hub Go here We're gonna get that share code out for the nighttime one or zero three nine And this should be FD Orlando nighttime. Let's go solo We're gonna change cars. So commos cars good, but I think we need to get something Was a little more power on the banks, so We're gonna bring out the f-22 and see if that will handle the bank at Orlando In the nighttime So big thank you to the man tagging me in these and show me these tracks pop So the best fd tracks I've seen so far here and set of course I guess I've other event lab tracks and things you want me to try let me know down in the comment section Up below. Let me know a share code or tag me on Instagram with the share code. We'll check them out Let's go into The event lab With the f-22 Luckily, you know, they're stadium lights. Hopefully on the inside. We'll be able to see fully This way. Let's do it through this little shoot probably not a third gear track and yes Nighttime here at Orlando speed world on horizon 5 definitely gonna be fun time. I feel Full send probably a third gear full send. So let's do this Yeah, it's gonna be a third gear full send a little bit better in this car than Kyle Moses car Get rid of those checkpoint banners on the first run So now we can get up nice and high on the bank Hopefully on the second run because we know third gear run definitely could be tuning the cars for these But these are first impressions on so let's go. Oh, I came off because I hit the wall So we're gonna go into first-person mode And see what we can do in first-person for the final run here may she gets one We don't switch me all those frauds scripture box below Let's do this. Oh, we came off way soon with that wall hit. I can't see anything Oh Yep, I couldn't see anything going into that with this driver's net so One thing I am noticing wall hits are not as forgiving as here as it is said of course I kind of push you way off track One final run can't end on that crappy run Wall hits not forgiving. So these are definitely fun tracks do need to tune the cars in order to handle these things Ultimately perfectly fine. Thank you. You guys come back and watch another episode guys Enjoy this episode here on person five as always. I think guys come back watching. I'm your rabbit. I'll see you guys on the track


There was a lot of human-wildlife conflict. People can lose entire crops, entire fields, entire harvests. They can lose their cattle, they can lose their lives.  Harbour is quite isolated. The economic activities that take place mainly are just for subsistence. There's not a huge market for any of the activities that are happening. We have got quite a lot of wildlife in our area and we therefore looked at what are the possibilities of us trying to benefit. The community therefore asked me if I can help them facilitate in setting up a trust. The vision is how do we promote the sustainable management of wildlife? How do we increase the supply of domestic meat? How do we then put in place the supply infrastructure to help the community benefit from this? That's what the Sustainable Wildlife Management Project has envisioned for the people of Habu and of course the cherry on top being the establishment of a community conservancy. What we are trying to do here essentially with the community conservancy is creating a whole diversified microeconomy. Part of the agreement was that we must zone our land in three different uses. A wildlife management area, cropped for me and then we can have cattle. We're trying to set up a proper community governance system so the way we have modelled those from communal conservancies that exist in Namibia. The whole idea behind the work that I do is to ensure that the community is in a position to identify business opportunities to develop them and grow them into thriving enterprises. We're trying to develop the conservancy into a viable tourism area. I want us to develop a tourism product that will be unique, an area where you don't have 15 vehicles at a time following up one lion. And also not only that, you can see and interact with our community. Now the community scout programme is operating quite efficiently in terms of patrol and ecological monitoring. That's worked quite well in terms of deterring people from going and hunting or poaching for wild meats into the conservancy. The Heading for Health programme is basically working with communities through livestock scouts. And those are the ones who then receive livestock from the villages to create a communal herd. And then with that herd develop a grazing plan. It's really about developing the entire beef value chain. We are also working on a community butchery in partnership with the Council. In Habu we have a women and youth cooperative. They are involved in a community garden. And that's one of the projects that we will be working on to help it to find access to finance as well as access to market. We want the community to be in the forefront. We want them to be leading the programmes and the projects so that at the end of the programme they can stand on their own. I think Habu will successfully demonstrate community coexistence. And from Habu these lessons will spread out and be replicated across the district and across the country.


That's our steel height there which is gauge and then we've got to get the laser I've set the laser up We spin it round plus the 37 that's two zero two five We need to write that down on the plate and good morning it's already a bright and sunny but we're here well I'm here dad has left me again so You know and I'm used to it at this point. We've done that many jobs where he's left He's getting the van service today, so he's a lot of this time Well, he's going to do that. I'm gonna get set up. So We've got the boards down so we can walk over the slab. There it is Very nice still a bit green. No, so that's why I put the boards down and And I'm gonna load out this side other sides already loaded did that yesterday so we can we can get another Two courses from here on the outside So Anyway Um, where was I yeah, I'll get the inside loaded out now and I think get those block pavers moved customers told us where they want them And yeah, just get basically just get set up as I can so I'll set you up while I do that and um I'll uh get back to you when dad gets here Right It's windy, but hopefully you're getting my voice because I've got this on Hey He's back. He's been busy Spent a good hour at least an hour probably over an hour Getting all the cuts done and my thick hoodie on my pants was he sweating to death But um, there's our leftover blocks And they're going to be The top course over the top of the steel and along the which will be Cut down to roughly 150. I'll show you what I'm going to be cut down to That's our steel height there, which is gauge and then we've got to get From that point up to that piece of red fascia and then Get that round Don't think There's anything in the back, but we'll have to find that one out and check with rubbish And actually probably will be one in the back On the back skin But we'll see If so, probably I haven't got enough two four six eight ten twelve fourteen Yeah, we'll see anyway We've might need a few more blocks, but we'll come to that we'll come to that next week when we're back So all the cuts are done Everything's done All the internal cuts up the They've had to be cut down on the internal skin to make them work gauge Because the back skin's been lifted We've chopped 35 mil off that so it levels everything back up for the tie wires All loaded out. So yeah, we're ready to get going now So it was big push today and then we're moving off this today On to um A new job for Vic Which will be on till we'll finish it and then we'll be back on this next week I think stills coming Monday. It's currently Thursday So time to get the chowl out. Well get the pants off and get the sun cream on and then um Get cracking So we'll put you somewhere out of the way and we'll get going We're in the afternoon now. I've had lunch Alex. He's just dropped the line. He's going to start running the pillar in So we need to get this pillar up. We need to get to padstone heights. I'm at padstone height now So the laser I've set the laser up. So we spin it round just catch it there. I hope you can catch it So that when it's shined on our mark up there That's our datum. So our laser is currently 37 millimeters below that mark so What I've done is put this somewhere. I've took this measurement Plus the 37 that's two zero two five Need to write that down That's our steel height. So that's bottom of padstone. So I need to get a few cuts from to get these padstone sorted It's a bit unfortunate because the padstone is going to sit on that half That's a bummer I'll sort something out We'll make it work So the padstone need cutting. We need a few cuts doing as well. And then we go around here Project that laser on to there There's our laser line. There's our 37 mill above And I'm gauged up. It's 230. So it's a nice big bed to the top top top lot So everything's working so so far We've got a load of 100 left over. So we're using that with all the 50 It's all 0.32. So just using it to make the 150 up. There's a 150 piece and just mix them up Yeah, that's 100 in there Yeah, you just shut up in the wall All right, I like them. So you put them in the wall all over the place. They look like they're making pretty pattern them Let's give them a try Right, um, yeah, I'll put you on Alex for a bit while I get over a source and get some cuts done Get covered in dust Well It's turned into a fluggish afternoon, but we're definitely making progress. The front is steel ready So that's the main thing done and We've got quite a bit of water left over so that's going to get some of that used up Yeah, so it was coming in a minute to pick that up to pick the van up the van up And so I'm just trying my best to tidy everything up because everything's got to go to this next job Which is frustrating, but Just got to do it So yeah, I'll throw you on to dad And I'll just keep trying to tidy up this chaos Six o'clock, but We've got three, three, we've got um Both sides Up to steel height so When we come when we do eventually come back here, we're ready to just plunge that steel and get this finished. Yeah Yeah But that is That's us done here for a few days so next time you see us in the next part of this will be uh Whenever we come back, so All right that last night just keep going You're going that way Rob. We're going this way just to get the wheels further back under this I promise you that it's heavy than it looks It does not look like much, but it's really thick steel. So that is That was a tough that's about Six seven mil box section that and it's six before On to it eight mil plates, which is three 40 deep because it's a six inch cavity. So the plate's deep And that's that is that is a lump But that's the steel that you needed for this roof the robbie so you can tell it's hot too because me forehead's out but There you go. That's been the start of the day get that steel up and we could have we could have got a gene this Yes, before everyone starts coming back to English, but that took us half an hour Bit by bit We're a bit traumatized after our last junior lift attempt as well. Yeah, three hours The last one we did we tried to get a gene list and couldn't get old of junior lift this one So a gene lift would have been helpful Anyway, we've we've got our technique that we do now. So we're good. We're good at getting these things up We're not in the business of rushing things up So saying that though now we've got to try and lift that up again and bed it on because And I think the task is We get that side leveled up to the steel and there's going to be a piece on top to go Was it was that going up to the piece just up to the um The red facial board. Yeah. Yeah So the so the piece is going level with that and then the back is being leveled with the back of the Box section. So this time we've got four blocks to go on yet So we may need we may need to do a fairwood run just to grab a few more blocks And then I think whenever it is we finish that we're going to pop on that drain Have you got the lubricant? Yes, I'm good. So that's the plan But now we're going to have a break because it is about 20 past nine and I've worked up a thirst So yeah, we'll get you set up properly after breaking and we'll get cracking Right kind of go organize now I've got ready to do the cuts which we do happening shortly Can't put a sun cream on yet because I've put some cream on just getting it covered in dust. So that's got to wait till the cuts are done So we've got a full course put around the inside full course put around the outside and then A full course around the whole thing I've cut except with the steel as a course we're cutting up to the steel both sides And currently got the laser level set up And nice level positions to this As you can see the laser set to the underside of this facing board That's our height for our block work. We've got to come in come in under here like this See it's just just shining on the top of the facing board there So that's our datum So now we spin it around Just see it shining on the steel there and somehow we're going to try and see it over there So I might have to use the air It's not a receiver. It's like a target But it's very hard in this kind of sun But I'm not complaining about the sun I'll be cutting all in mate. Just stick them all there There's a lot of cuts. Yeah a lot of cuts. I think it's only 10 full block and the rest are cut Yeah I'm just saying we're getting the levels around now That's set now. That's the underside of the facing board. So we're going to need to mark it up here So we just need a pencil and we've got one And a tape measure please mate Where's the other one? So what we do here is see if we can find this laser Doing there somewhere. There's two. I can see the laser level there We've started spinning around a bit for that.  Can you just spin that laser to that corner please? Not far not that far. That's it There we go You might just make it out of my hand there This facing board's lower than the other one. So we're going to have to get the multitool out here. That's where we're going to There's our laser line So obviously that needs cutting out of the facing board with the multitool for that So you can get on there and that measurement is 140 so that cuts a 130 Cool That's a 130 for the internal And the external is 370. This is five below this end. So 370 minus 225 370 minus 225 10 25 and then two one two So that's what we left with so the cut needs to be one three five on the outside So what I cut's worked out. So I need a load of 130s and a load of one three fives And then yeah That's it Don't need to check this corner because I've measured that So I'm going to get down there and get cutting And Alex is going to load out and get a mix on Trying to mix on down in this corner out of the sun If you want these blocks out of the way if we can get a mix down in there in the corner away from the sunshine Here we have it catching a bit man in the cool bag. Hey He's left me phoning the van in the cool bag He did hear that right. It's in the cool bag keeps overheating. So I've put it in the cool bag to cool it down so Talking of cooling down. We're now in the we're in the shade And Alex finished that end off all done So what we've got left to do is come across the steel at the front and put these coupling at the back All the cut through here done. I was like that. I've never seen cutting for two hours Felt like two hours So, um, while that's getting the mix in I'm going to drop all this scaffold and get it all transferred up to here And then we can get this back on Tied up whatever we can't. What don't we stay? So yeah, while Alex gets the mix on I'm going to get it all this dropped and moved across it here And then it's just about a dozen pieces to go in then and that's us leveled up and done Um, yeah, that's it And we're out here. Well, we're back here tomorrow for a couple of hours in the morning to get the gully in the gully is going to stick out Gully's going back in and it's going to stick out into that corner and then the echo can be channeled into the gully and then we're connecting back to the original gully which is Down there Because if you've watched this little series, you'll remember that that gully was higher than that gully And it didn't travel as far that sort of went across the corner here Whereas it's going further now So if we put the gully in with as little fall as possible then the actual echo can go in I know I keep saying echo but that's where it's at I've watched the video of the company and they say it's called echo I know everyone's called it echo Justin Brickett called it echo but anyway You can put your echo drains in echo drains in level Which is good Because as they say you can't stack water It'll always bounce way away So even if they put a 10 mil fall on it, it'll get away But that's anyway we can get The downspout in from that end Because we're fixed with that point Without taking the fence out, taking the gully out and digging back down to the The soil pipe over there And there's no chamber on it either, so So that's it I've got a couple of, well three tubs of 10 mil limestone for the bit the Pipe bedding Pete gravel whatever you want to call it So looking back for that tomorrow There's a bit of a lump here That lump's going to be dragged down and backfilled over the top I know people say we should have done the drains first But we would have been stamping all over the drains So it's not a big deal to do that last And then we've got all our levels and everything as well So yeah we've got a little bit of points to do here We ran out of water before dinner And there you go, there's the padstones Lovely job And get rid of a load of stuff today If not, we'll take it tomorrow and we're doing that The back to time lapse, let's get this scaffold shifted There we have it What time are we on our path three? It's been a slow day today though I was rafing on and off at dinner time It's got that hot Well as you can see we're getting the shade in the afternoon So we're done Alex did that side this morning After the Robbie's had helped us get the steel up That's a solid lump, that is heavy, heavy But that's specified by a structural engineer We don't just put anything in anymore We make sure we've got an engineers report If we've not got a nice finish on it though So this is staying up tonight We're going to take this tomorrow We're just going to put everything else that we can in the van Start moving stuff And then tomorrow we've got that drain to do And a good tidy up and a good clean up So as usual a little time lapse of the cleanup And then we'll see you in the morning Morning, it is like Probably near 10 o'clock We've had a bit of a late start Because we've not got much to do today And we've had a fry up Friday And since we've got here we've been sorting the van out Getting all the last of the stuff put in So now we can just get focused on the work Mixer's got the happy stones in for a little last rinse down And today is get this draining So I think it's straightforward as dad has been saying Just get it so it goes to here with a good fall And the rubbish will put the echo drain in As that's been said a thousand times I give this a quick scrape back yesterday So hopefully that'll be at level And as dad with our big pack out There's a good look at the extension Now that it's all emptied out I always say it always looks small when all the stuff's in But once all the stuff comes out Then you see how big it is And there's a nice heavy steel So yeah enough waffling on That's our task Once oh and dad is going to the front Sorry there's a bit of a bit of rendering to come off again So he's just going to point that up now While the sun's on this side But yeah that's the task Let's hope we can get this done nice and quick Hopefully we'll be able to drop all the trusses off at another job later So it saves us a bit of time next time I'll get you set up somewhere I'm keeping the blower It's my air conditioner But here we go Gully's in Yeah yeah we'll do yeah So where was I? Yeah gully's in Stoned up and backfilled There's only a small four on it Because as you can see it's quite high So I think instead of an echo We're going to see if the robbies can Reroute all the water to go to that corner Which they should be able to do It's nice and it's just a square to redirect it Just saves me Instead of dropping one there Just bringing it here Just so the echo's not sticking out of the ground We'll see what they say They don't know what to do But that's that part done So if you give me a hot second I'll get you an outro There we have it So that is this job done Lovely extension I cannot tell if you can see Because I cannot see anything The sun's right in my eyes So there we go One lovely nice straightforward extension Once that dig from hell was done The only dig was digging the steel With the only challenging parts But other than that This has been a nice one And a nice drainage So I'll keep saying so again But that is another one ticked off So thank you all so much for watching If you enjoyed be sure to give us a like And if you're new to the channel You want to see more be sure to hit subscribe And tap on that bell That way you're always notified when we upload That's always a massive help And we greatly appreciate the support Let's bring you in with the force This has been Brickley This is Steve and Alex With one nice former conservatory now extension And we'll see you in the next video